| """ |
| 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() |