""" Tests for Posix-flavoured pathlib.types._JoinablePath """ import os import unittest from .support import is_pypi from .support.lexical_path import LexicalPosixPath class JoinTestBase: def test_join(self): P = self.cls p = P('//a') pp = p.joinpath('b') self.assertEqual(pp, P('//a/b')) pp = P('/a').joinpath('//c') self.assertEqual(pp, P('//c')) pp = P('//a').joinpath('/c') self.assertEqual(pp, P('/c')) def test_div(self): # Basically the same as joinpath(). P = self.cls p = P('//a') pp = p / 'b' self.assertEqual(pp, P('//a/b')) pp = P('/a') / '//c' self.assertEqual(pp, P('//c')) pp = P('//a') / '/c' self.assertEqual(pp, P('/c')) class LexicalPosixPathJoinTest(JoinTestBase, unittest.TestCase): cls = LexicalPosixPath if not is_pypi: from pathlib import PurePosixPath, PosixPath class PurePosixPathJoinTest(JoinTestBase, unittest.TestCase): cls = PurePosixPath if os.name != 'nt': class PosixPathJoinTest(JoinTestBase, unittest.TestCase): cls = PosixPath if __name__ == "__main__": unittest.main()