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.py54
-rw-r--r--Lib/test/test_pathlib/test_pathlib_abc.py76
2 files changed, 65 insertions, 65 deletions
diff --git a/Lib/test/test_pathlib/test_pathlib.py b/Lib/test/test_pathlib/test_pathlib.py
index 3a6f73c..651d666 100644
--- a/Lib/test/test_pathlib/test_pathlib.py
+++ b/Lib/test/test_pathlib/test_pathlib.py
@@ -65,7 +65,7 @@ class PurePathTest(test_pathlib_abc.DummyPurePathTest):
p = self.cls('a')
self.assertIs(type(p), expected)
- def test_concrete_pathmod(self):
+ def test_concrete_parser(self):
if self.cls is pathlib.PurePosixPath:
expected = posixpath
elif self.cls is pathlib.PureWindowsPath:
@@ -73,19 +73,19 @@ class PurePathTest(test_pathlib_abc.DummyPurePathTest):
else:
expected = os.path
p = self.cls('a')
- self.assertIs(p.pathmod, expected)
+ self.assertIs(p.parser, expected)
- def test_different_pathmods_unequal(self):
+ def test_different_parsers_unequal(self):
p = self.cls('a')
- if p.pathmod is posixpath:
+ if p.parser is posixpath:
q = pathlib.PureWindowsPath('a')
else:
q = pathlib.PurePosixPath('a')
self.assertNotEqual(p, q)
- def test_different_pathmods_unordered(self):
+ def test_different_parsers_unordered(self):
p = self.cls('a')
- if p.pathmod is posixpath:
+ if p.parser is posixpath:
q = pathlib.PureWindowsPath('a')
else:
q = pathlib.PurePosixPath('a')
@@ -108,16 +108,16 @@ class PurePathTest(test_pathlib_abc.DummyPurePathTest):
self.assertEqual(P(P('./a:b')), P('./a:b'))
def _check_parse_path(self, raw_path, *expected):
- sep = self.pathmod.sep
+ sep = self.parser.sep
actual = self.cls._parse_path(raw_path.replace('/', sep))
self.assertEqual(actual, expected)
- if altsep := self.pathmod.altsep:
+ if altsep := self.parser.altsep:
actual = self.cls._parse_path(raw_path.replace('/', altsep))
self.assertEqual(actual, expected)
def test_parse_path_common(self):
check = self._check_parse_path
- sep = self.pathmod.sep
+ sep = self.parser.sep
check('', '', '', [])
check('a', '', '', ['a'])
check('a/', '', '', ['a'])
@@ -523,10 +523,10 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest):
def setUp(self):
super().setUp()
- os.chmod(self.pathmod.join(self.base, 'dirE'), 0)
+ os.chmod(self.parser.join(self.base, 'dirE'), 0)
def tearDown(self):
- os.chmod(self.pathmod.join(self.base, 'dirE'), 0o777)
+ os.chmod(self.parser.join(self.base, 'dirE'), 0o777)
os_helper.rmtree(self.base)
def tempdir(self):
@@ -541,8 +541,8 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest):
path_names = {name for name in dir(pathlib._abc.PathBase) if name[0] != '_'}
self.assertEqual(our_names, path_names)
for attr_name in our_names:
- if attr_name == 'pathmod':
- # On Windows, Path.pathmod is ntpath, but PathBase.pathmod is
+ if attr_name == 'parser':
+ # On Windows, Path.parser is ntpath, but PathBase.parser is
# posixpath, and so their docstrings differ.
continue
our_attr = getattr(self.cls, attr_name)
@@ -557,9 +557,9 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest):
p = self.cls('a')
self.assertIs(type(p), expected)
- def test_unsupported_pathmod(self):
- if self.cls.pathmod is os.path:
- self.skipTest("path flavour is supported")
+ def test_unsupported_parser(self):
+ if self.cls.parser is os.path:
+ self.skipTest("path parser is supported")
else:
self.assertRaises(pathlib.UnsupportedOperation, self.cls)
@@ -809,7 +809,7 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest):
self.assertTrue(target.exists())
# Linking to a str of a relative path.
link2 = P / 'dirA' / 'fileAAA'
- target2 = self.pathmod.join(TESTFN, 'fileA')
+ target2 = self.parser.join(TESTFN, 'fileA')
link2.hardlink_to(target2)
self.assertEqual(os.stat(target2).st_size, size)
self.assertTrue(link2.exists())
@@ -834,7 +834,7 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest):
self.assertEqual(q.stat().st_size, size)
self.assertFileNotFound(p.stat)
# Renaming to a str of a relative path.
- r = self.pathmod.join(TESTFN, 'fileAAA')
+ r = self.parser.join(TESTFN, 'fileAAA')
renamed_q = q.rename(r)
self.assertEqual(renamed_q, self.cls(r))
self.assertEqual(os.stat(r).st_size, size)
@@ -851,7 +851,7 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest):
self.assertEqual(q.stat().st_size, size)
self.assertFileNotFound(p.stat)
# Replacing another (existing) path.
- r = self.pathmod.join(TESTFN, 'dirB', 'fileB')
+ r = self.parser.join(TESTFN, 'dirB', 'fileB')
replaced_q = q.replace(r)
self.assertEqual(replaced_q, self.cls(r))
self.assertEqual(os.stat(r).st_size, size)
@@ -1060,9 +1060,9 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest):
def test_is_junction(self):
P = self.cls(self.base)
- with mock.patch.object(P.pathmod, 'isjunction'):
- self.assertEqual(P.is_junction(), P.pathmod.isjunction.return_value)
- P.pathmod.isjunction.assert_called_once_with(P)
+ with mock.patch.object(P.parser, 'isjunction'):
+ self.assertEqual(P.is_junction(), P.parser.isjunction.return_value)
+ P.parser.isjunction.assert_called_once_with(P)
@unittest.skipUnless(hasattr(os, "mkfifo"), "os.mkfifo() required")
@unittest.skipIf(sys.platform == "vxworks",
@@ -1294,12 +1294,12 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest):
p = self.cls(self.base)
with (p / 'new_file').open('wb'):
pass
- st = os.stat(self.pathmod.join(self.base, 'new_file'))
+ st = os.stat(self.parser.join(self.base, 'new_file'))
self.assertEqual(stat.S_IMODE(st.st_mode), 0o666)
os.umask(0o022)
with (p / 'other_new_file').open('wb'):
pass
- st = os.stat(self.pathmod.join(self.base, 'other_new_file'))
+ st = os.stat(self.parser.join(self.base, 'other_new_file'))
self.assertEqual(stat.S_IMODE(st.st_mode), 0o644)
@needs_posix
@@ -1322,14 +1322,14 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest):
self.addCleanup(os.umask, old_mask)
p = self.cls(self.base)
(p / 'new_file').touch()
- st = os.stat(self.pathmod.join(self.base, 'new_file'))
+ st = os.stat(self.parser.join(self.base, 'new_file'))
self.assertEqual(stat.S_IMODE(st.st_mode), 0o666)
os.umask(0o022)
(p / 'other_new_file').touch()
- st = os.stat(self.pathmod.join(self.base, 'other_new_file'))
+ st = os.stat(self.parser.join(self.base, 'other_new_file'))
self.assertEqual(stat.S_IMODE(st.st_mode), 0o644)
(p / 'masked_new_file').touch(mode=0o750)
- st = os.stat(self.pathmod.join(self.base, 'masked_new_file'))
+ st = os.stat(self.parser.join(self.base, 'masked_new_file'))
self.assertEqual(stat.S_IMODE(st.st_mode), 0o750)
@unittest.skipUnless(hasattr(pwd, 'getpwall'),
diff --git a/Lib/test/test_pathlib/test_pathlib_abc.py b/Lib/test/test_pathlib/test_pathlib_abc.py
index 840fb90..a7e35a3 100644
--- a/Lib/test/test_pathlib/test_pathlib_abc.py
+++ b/Lib/test/test_pathlib/test_pathlib_abc.py
@@ -5,7 +5,7 @@ import errno
import stat
import unittest
-from pathlib._abc import UnsupportedOperation, PathModuleBase, PurePathBase, PathBase
+from pathlib._abc import UnsupportedOperation, ParserBase, PurePathBase, PathBase
import posixpath
from test.support.os_helper import TESTFN
@@ -38,8 +38,8 @@ class UnsupportedOperationTest(unittest.TestCase):
self.assertTrue(isinstance(UnsupportedOperation(), NotImplementedError))
-class PathModuleBaseTest(unittest.TestCase):
- cls = PathModuleBase
+class ParserBaseTest(unittest.TestCase):
+ cls = ParserBase
def test_unsupported_operation(self):
m = self.cls()
@@ -109,13 +109,13 @@ class PurePathBaseTest(unittest.TestCase):
self.assertIs(P.__gt__, object.__gt__)
self.assertIs(P.__ge__, object.__ge__)
- def test_pathmod(self):
- self.assertIsInstance(self.cls.pathmod, PathModuleBase)
+ def test_parser(self):
+ self.assertIsInstance(self.cls.parser, ParserBase)
class DummyPurePath(PurePathBase):
__slots__ = ()
- pathmod = posixpath
+ parser = posixpath
def __eq__(self, other):
if not isinstance(other, DummyPurePath):
@@ -137,14 +137,14 @@ class DummyPurePathTest(unittest.TestCase):
def setUp(self):
name = self.id().split('.')[-1]
- if name in _tests_needing_posix and self.cls.pathmod is not posixpath:
+ if name in _tests_needing_posix and self.cls.parser is not posixpath:
self.skipTest('requires POSIX-flavoured path class')
- if name in _tests_needing_windows and self.cls.pathmod is posixpath:
+ if name in _tests_needing_windows and self.cls.parser is posixpath:
self.skipTest('requires Windows-flavoured path class')
p = self.cls('a')
- self.pathmod = p.pathmod
- self.sep = self.pathmod.sep
- self.altsep = self.pathmod.altsep
+ self.parser = p.parser
+ self.sep = self.parser.sep
+ self.altsep = self.parser.altsep
def test_constructor_common(self):
P = self.cls
@@ -1411,7 +1411,7 @@ class DummyPath(PathBase):
memory.
"""
__slots__ = ()
- pathmod = posixpath
+ parser = posixpath
_files = {}
_directories = {}
@@ -1530,7 +1530,7 @@ class DummyPathTest(DummyPurePathTest):
name = self.id().split('.')[-1]
if name in _tests_needing_symlinks and not self.can_symlink:
self.skipTest('requires symlinks')
- pathmod = self.cls.pathmod
+ parser = self.cls.parser
p = self.cls(self.base)
p.mkdir(parents=True)
p.joinpath('dirA').mkdir()
@@ -1552,8 +1552,8 @@ class DummyPathTest(DummyPurePathTest):
p.joinpath('linkA').symlink_to('fileA')
p.joinpath('brokenLink').symlink_to('non-existing')
p.joinpath('linkB').symlink_to('dirB')
- p.joinpath('dirA', 'linkC').symlink_to(pathmod.join('..', 'dirB'))
- p.joinpath('dirB', 'linkD').symlink_to(pathmod.join('..', 'dirB'))
+ p.joinpath('dirA', 'linkC').symlink_to(parser.join('..', 'dirB'))
+ p.joinpath('dirB', 'linkD').symlink_to(parser.join('..', 'dirB'))
p.joinpath('brokenLinkLoop').symlink_to('brokenLinkLoop')
def tearDown(self):
@@ -1573,13 +1573,13 @@ class DummyPathTest(DummyPurePathTest):
self.assertEqual(cm.exception.errno, errno.ENOENT)
def assertEqualNormCase(self, path_a, path_b):
- normcase = self.pathmod.normcase
+ normcase = self.parser.normcase
self.assertEqual(normcase(path_a), normcase(path_b))
def test_samefile(self):
- pathmod = self.pathmod
- fileA_path = pathmod.join(self.base, 'fileA')
- fileB_path = pathmod.join(self.base, 'dirB', 'fileB')
+ parser = self.parser
+ fileA_path = parser.join(self.base, 'fileA')
+ fileB_path = parser.join(self.base, 'dirB', 'fileB')
p = self.cls(fileA_path)
pp = self.cls(fileA_path)
q = self.cls(fileB_path)
@@ -1588,7 +1588,7 @@ class DummyPathTest(DummyPurePathTest):
self.assertFalse(p.samefile(fileB_path))
self.assertFalse(p.samefile(q))
# Test the non-existent file case
- non_existent = pathmod.join(self.base, 'foo')
+ non_existent = parser.join(self.base, 'foo')
r = self.cls(non_existent)
self.assertRaises(FileNotFoundError, p.samefile, r)
self.assertRaises(FileNotFoundError, p.samefile, non_existent)
@@ -2050,15 +2050,15 @@ class DummyPathTest(DummyPurePathTest):
p.resolve(strict=True)
self.assertEqual(cm.exception.errno, errno.ENOENT)
# Non-strict
- pathmod = self.pathmod
+ parser = self.parser
self.assertEqualNormCase(str(p.resolve(strict=False)),
- pathmod.join(self.base, 'foo'))
+ parser.join(self.base, 'foo'))
p = P(self.base, 'foo', 'in', 'spam')
self.assertEqualNormCase(str(p.resolve(strict=False)),
- pathmod.join(self.base, 'foo', 'in', 'spam'))
+ parser.join(self.base, 'foo', 'in', 'spam'))
p = P(self.base, '..', 'foo', 'in', 'spam')
self.assertEqualNormCase(str(p.resolve(strict=False)),
- pathmod.join(pathmod.dirname(self.base), 'foo', 'in', 'spam'))
+ parser.join(parser.dirname(self.base), 'foo', 'in', 'spam'))
# These are all relative symlinks.
p = P(self.base, 'dirB', 'fileB')
self._check_resolve_relative(p, p)
@@ -2073,7 +2073,7 @@ class DummyPathTest(DummyPurePathTest):
self._check_resolve_relative(p, P(self.base, 'dirB', 'fileB', 'foo', 'in',
'spam'), False)
p = P(self.base, 'dirA', 'linkC', '..', 'foo', 'in', 'spam')
- if self.cls.pathmod is not posixpath:
+ if self.cls.parser is not posixpath:
# In Windows, if linkY points to dirB, 'dirA\linkY\..'
# resolves to 'dirA' without resolving linkY first.
self._check_resolve_relative(p, P(self.base, 'dirA', 'foo', 'in',
@@ -2085,7 +2085,7 @@ class DummyPathTest(DummyPurePathTest):
# Now create absolute symlinks.
d = self.tempdir()
P(self.base, 'dirA', 'linkX').symlink_to(d)
- P(self.base, str(d), 'linkY').symlink_to(self.pathmod.join(self.base, 'dirB'))
+ P(self.base, str(d), 'linkY').symlink_to(self.parser.join(self.base, 'dirB'))
p = P(self.base, 'dirA', 'linkX', 'linkY', 'fileB')
self._check_resolve_absolute(p, P(self.base, 'dirB', 'fileB'))
# Non-strict
@@ -2093,7 +2093,7 @@ class DummyPathTest(DummyPurePathTest):
self._check_resolve_relative(p, P(self.base, 'dirB', 'foo', 'in', 'spam'),
False)
p = P(self.base, 'dirA', 'linkX', 'linkY', '..', 'foo', 'in', 'spam')
- if self.cls.pathmod is not posixpath:
+ if self.cls.parser is not posixpath:
# In Windows, if linkY points to dirB, 'dirA\linkY\..'
# resolves to 'dirA' without resolving linkY first.
self._check_resolve_relative(p, P(d, 'foo', 'in', 'spam'), False)
@@ -2105,11 +2105,11 @@ class DummyPathTest(DummyPurePathTest):
@needs_symlinks
def test_resolve_dot(self):
# See http://web.archive.org/web/20200623062557/https://bitbucket.org/pitrou/pathlib/issues/9/
- pathmod = self.pathmod
+ parser = self.parser
p = self.cls(self.base)
p.joinpath('0').symlink_to('.', target_is_directory=True)
- p.joinpath('1').symlink_to(pathmod.join('0', '0'), target_is_directory=True)
- p.joinpath('2').symlink_to(pathmod.join('1', '1'), target_is_directory=True)
+ p.joinpath('1').symlink_to(parser.join('0', '0'), target_is_directory=True)
+ p.joinpath('2').symlink_to(parser.join('1', '1'), target_is_directory=True)
q = p / '2'
self.assertEqual(q.resolve(strict=True), p)
r = q / '3' / '4'
@@ -2137,11 +2137,11 @@ class DummyPathTest(DummyPurePathTest):
p = self.cls(self.base, 'linkZ', 'foo')
self.assertEqual(p.resolve(strict=False), p)
# Loops with absolute symlinks.
- self.cls(self.base, 'linkU').symlink_to(self.pathmod.join(self.base, 'linkU/inside'))
+ self.cls(self.base, 'linkU').symlink_to(self.parser.join(self.base, 'linkU/inside'))
self._check_symlink_loop(self.base, 'linkU')
- self.cls(self.base, 'linkV').symlink_to(self.pathmod.join(self.base, 'linkV'))
+ self.cls(self.base, 'linkV').symlink_to(self.parser.join(self.base, 'linkV'))
self._check_symlink_loop(self.base, 'linkV')
- self.cls(self.base, 'linkW').symlink_to(self.pathmod.join(self.base, 'linkW/../linkW'))
+ self.cls(self.base, 'linkW').symlink_to(self.parser.join(self.base, 'linkW/../linkW'))
self._check_symlink_loop(self.base, 'linkW')
# Non-strict
q = self.cls(self.base, 'linkW', 'foo')
@@ -2313,11 +2313,11 @@ class DummyPathTest(DummyPurePathTest):
def _check_complex_symlinks(self, link0_target):
# Test solving a non-looping chain of symlinks (issue #19887).
- pathmod = self.pathmod
+ parser = self.parser
P = self.cls(self.base)
- P.joinpath('link1').symlink_to(pathmod.join('link0', 'link0'), target_is_directory=True)
- P.joinpath('link2').symlink_to(pathmod.join('link1', 'link1'), target_is_directory=True)
- P.joinpath('link3').symlink_to(pathmod.join('link2', 'link2'), target_is_directory=True)
+ P.joinpath('link1').symlink_to(parser.join('link0', 'link0'), target_is_directory=True)
+ P.joinpath('link2').symlink_to(parser.join('link1', 'link1'), target_is_directory=True)
+ P.joinpath('link3').symlink_to(parser.join('link2', 'link2'), target_is_directory=True)
P.joinpath('link0').symlink_to(link0_target, target_is_directory=True)
# Resolve absolute paths.
@@ -2367,7 +2367,7 @@ class DummyPathTest(DummyPurePathTest):
@needs_symlinks
def test_complex_symlinks_relative_dot_dot(self):
- self._check_complex_symlinks(self.pathmod.join('dirA', '..'))
+ self._check_complex_symlinks(self.parser.join('dirA', '..'))
def setUpWalk(self):
# Build: