diff options
Diffstat (limited to 'Lib/test/test_pathlib.py')
| -rw-r--r-- | Lib/test/test_pathlib.py | 19 | 
1 files changed, 15 insertions, 4 deletions
| diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py index fa96d9f..2f2ba3c 100644 --- a/Lib/test/test_pathlib.py +++ b/Lib/test/test_pathlib.py @@ -190,13 +190,18 @@ class _BasePurePathTest(object):          P = self.cls          p = P('a')          self.assertIsInstance(p, P) +        class PathLike: +            def __fspath__(self): +                return "a/b/c"          P('a', 'b', 'c')          P('/a', 'b', 'c')          P('a/b/c')          P('/a/b/c') +        P(PathLike())          self.assertEqual(P(P('a')), P('a'))          self.assertEqual(P(P('a'), 'b'), P('a/b'))          self.assertEqual(P(P('a'), P('b')), P('a/b')) +        self.assertEqual(P(P('a'), P('b'), P('c')), P(PathLike()))      def _check_str_subclass(self, *args):          # Issue #21127: it should be possible to construct a PurePath object @@ -384,6 +389,12 @@ class _BasePurePathTest(object):          parts = p.parts          self.assertEqual(parts, (sep, 'a', 'b')) +    def test_fspath_common(self): +        P = self.cls +        p = P('a/b') +        self._check_str(p.__fspath__(), ('a/b',)) +        self._check_str(os.fspath(p), ('a/b',)) +      def test_equivalences(self):          for k, tuples in self.equivalences.items():              canon = k.replace('/', self.sep) @@ -1474,14 +1485,14 @@ class _BasePathTest(object):          self.assertEqual(set(p.glob("dirA/../file*")), { P(BASE, "dirA/../fileA") })          self.assertEqual(set(p.glob("../xyzzy")), set()) -    def _check_resolve_relative(self, p, expected): -        q = p.resolve() -        self.assertEqual(q, expected) -    def _check_resolve_absolute(self, p, expected): +    def _check_resolve(self, p, expected):          q = p.resolve()          self.assertEqual(q, expected) +    # this can be used to check both relative and absolute resolutions +    _check_resolve_relative = _check_resolve_absolute = _check_resolve +      @with_symlinks      def test_resolve_common(self):          P = self.cls | 
