diff options
author | Barney Gale <barney.gale@gmail.com> | 2024-12-23 17:22:15 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-23 17:22:15 +0000 |
commit | d61542b5ff1fe64705e5ce1bcc53048f14098dba (patch) | |
tree | ad512bcc0a38c765b7ae1b0893b4d22ee51858ae /Lib/test/test_pathlib/test_pathlib_abc.py | |
parent | c5b0c90b62f1a10b0742db4bcd17da080d4e9111 (diff) | |
download | cpython-d61542b5ff1fe64705e5ce1bcc53048f14098dba.tar.gz cpython-d61542b5ff1fe64705e5ce1bcc53048f14098dba.zip |
pathlib tests: create test hierarchy without using class under test (#128200)
In the pathlib tests, avoid using the path class under test (`self.cls`) in
test setup. Instead we use `os` functions in `test_pathlib`, and direct
manipulation of `DummyPath` internal data in `test_pathlib_abc`.
Diffstat (limited to 'Lib/test/test_pathlib/test_pathlib_abc.py')
-rw-r--r-- | Lib/test/test_pathlib/test_pathlib_abc.py | 46 |
1 files changed, 19 insertions, 27 deletions
diff --git a/Lib/test/test_pathlib/test_pathlib_abc.py b/Lib/test/test_pathlib/test_pathlib_abc.py index 9198a0cbc45..787fb0f8225 100644 --- a/Lib/test/test_pathlib/test_pathlib_abc.py +++ b/Lib/test/test_pathlib/test_pathlib_abc.py @@ -1437,33 +1437,25 @@ class DummyPathTest(DummyPurePathTest): def setUp(self): super().setUp() - parser = self.cls.parser - p = self.cls(self.base) - p.mkdir(parents=True) - p.joinpath('dirA').mkdir() - p.joinpath('dirB').mkdir() - p.joinpath('dirC').mkdir() - p.joinpath('dirC', 'dirD').mkdir() - p.joinpath('dirE').mkdir() - with p.joinpath('fileA').open('wb') as f: - f.write(b"this is file A\n") - with p.joinpath('dirB', 'fileB').open('wb') as f: - f.write(b"this is file B\n") - with p.joinpath('dirC', 'fileC').open('wb') as f: - f.write(b"this is file C\n") - with p.joinpath('dirC', 'novel.txt').open('wb') as f: - f.write(b"this is a novel\n") - with p.joinpath('dirC', 'dirD', 'fileD').open('wb') as f: - f.write(b"this is file D\n") - if self.can_symlink: - p.joinpath('linkA').symlink_to('fileA') - p.joinpath('brokenLink').symlink_to('non-existing') - p.joinpath('linkB').symlink_to('dirB', target_is_directory=True) - p.joinpath('dirA', 'linkC').symlink_to( - parser.join('..', 'dirB'), target_is_directory=True) - p.joinpath('dirB', 'linkD').symlink_to( - parser.join('..', 'dirB'), target_is_directory=True) - p.joinpath('brokenLinkLoop').symlink_to('brokenLinkLoop') + self.createTestHierarchy() + + def createTestHierarchy(self): + cls = self.cls + cls._files = { + f'{self.base}/fileA': b'this is file A\n', + f'{self.base}/dirB/fileB': b'this is file B\n', + f'{self.base}/dirC/fileC': b'this is file C\n', + f'{self.base}/dirC/dirD/fileD': b'this is file D\n', + f'{self.base}/dirC/novel.txt': b'this is a novel\n', + } + cls._directories = { + f'{self.base}': {'fileA', 'dirA', 'dirB', 'dirC', 'dirE'}, + f'{self.base}/dirA': set(), + f'{self.base}/dirB': {'fileB'}, + f'{self.base}/dirC': {'fileC', 'dirD', 'novel.txt'}, + f'{self.base}/dirC/dirD': {'fileD'}, + f'{self.base}/dirE': set(), + } def tearDown(self): cls = self.cls |