summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_pathlib
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test/test_pathlib')
-rw-r--r--Lib/test/test_pathlib/test_pathlib.py22
-rw-r--r--Lib/test/test_pathlib/test_pathlib_abc.py40
2 files changed, 39 insertions, 23 deletions
diff --git a/Lib/test/test_pathlib/test_pathlib.py b/Lib/test/test_pathlib/test_pathlib.py
index c7104bf..46966b6 100644
--- a/Lib/test/test_pathlib/test_pathlib.py
+++ b/Lib/test/test_pathlib/test_pathlib.py
@@ -861,6 +861,28 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest):
def test_move_into_empty_name_other_os(self):
self.test_move_into_empty_name()
+ def _check_complex_symlinks(self, link0_target):
+ super()._check_complex_symlinks(link0_target)
+ P = self.cls(self.base)
+ # Resolve relative paths.
+ old_path = os.getcwd()
+ os.chdir(self.base)
+ try:
+ p = self.cls('link0').resolve()
+ self.assertEqual(p, P)
+ self.assertEqualNormCase(str(p), self.base)
+ p = self.cls('link1').resolve()
+ self.assertEqual(p, P)
+ self.assertEqualNormCase(str(p), self.base)
+ p = self.cls('link2').resolve()
+ self.assertEqual(p, P)
+ self.assertEqualNormCase(str(p), self.base)
+ p = self.cls('link3').resolve()
+ self.assertEqual(p, P)
+ self.assertEqualNormCase(str(p), self.base)
+ finally:
+ os.chdir(old_path)
+
def test_resolve_nonexist_relative_issue38671(self):
p = self.cls('non', 'exist')
diff --git a/Lib/test/test_pathlib/test_pathlib_abc.py b/Lib/test/test_pathlib/test_pathlib_abc.py
index bb2e418..b69d674 100644
--- a/Lib/test/test_pathlib/test_pathlib_abc.py
+++ b/Lib/test/test_pathlib/test_pathlib_abc.py
@@ -2493,6 +2493,23 @@ class DummyPathTest(DummyPurePathTest):
bad_link.symlink_to("bad" * 200)
self.assertEqual(sorted(base.glob('**/*')), [bad_link])
+ @needs_posix
+ def test_absolute_posix(self):
+ P = self.cls
+ # The default implementation uses '/' as the current directory
+ self.assertEqual(str(P('').absolute()), '/')
+ self.assertEqual(str(P('a').absolute()), '/a')
+ self.assertEqual(str(P('a/b').absolute()), '/a/b')
+
+ self.assertEqual(str(P('/').absolute()), '/')
+ self.assertEqual(str(P('/a').absolute()), '/a')
+ self.assertEqual(str(P('/a/b').absolute()), '/a/b')
+
+ # '//'-prefixed absolute path (supported by POSIX).
+ self.assertEqual(str(P('//').absolute()), '//')
+ self.assertEqual(str(P('//a').absolute()), '//a')
+ self.assertEqual(str(P('//a/b').absolute()), '//a/b')
+
@needs_symlinks
def test_readlink(self):
P = self.cls(self.base)
@@ -2810,29 +2827,6 @@ class DummyPathTest(DummyPurePathTest):
self.assertEqual(p, P)
self.assertEqualNormCase(str(p), self.base)
- # Resolve relative paths.
- try:
- self.cls('').absolute()
- except UnsupportedOperation:
- return
- old_path = os.getcwd()
- os.chdir(self.base)
- try:
- p = self.cls('link0').resolve()
- self.assertEqual(p, P)
- self.assertEqualNormCase(str(p), self.base)
- p = self.cls('link1').resolve()
- self.assertEqual(p, P)
- self.assertEqualNormCase(str(p), self.base)
- p = self.cls('link2').resolve()
- self.assertEqual(p, P)
- self.assertEqualNormCase(str(p), self.base)
- p = self.cls('link3').resolve()
- self.assertEqual(p, P)
- self.assertEqualNormCase(str(p), self.base)
- finally:
- os.chdir(old_path)
-
@needs_symlinks
def test_complex_symlinks_absolute(self):
self._check_complex_symlinks(self.base)