diff options
author | Barney Gale <barney.gale@gmail.com> | 2025-03-21 22:18:20 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2025-03-21 22:18:20 +0000 |
commit | cf9d1a4b6b28a76a49edba4028d5533195172287 (patch) | |
tree | c20da37c6f435fe18a84b59ca83cbb3fae81c91f /Lib/test/test_pathlib/test_join_windows.py | |
parent | 56d0f9af147b2280ea0af7af5e57df1a01271991 (diff) | |
download | cpython-cf9d1a4b6b28a76a49edba4028d5533195172287.tar.gz cpython-cf9d1a4b6b28a76a49edba4028d5533195172287.zip |
GH-128520: pathlib ABCs: allow tests to be run externally (#131315)
Adjust the tests for the `pathlib.types` module so that they can be run
against the `pathlib-abc` PyPI package, which is a backport of the module
for older Python versions.
Specifically, we add a `.support.is_pypi` switch that is false in the
stdlib and true in the pathlib-abc package. This controls which package
we import, and whether or not we run tests against `PurePath` and `Path`.
For compatibility with older Python versions, we stop using
`zipfile.ZipFile.mkdir()` and `zipfile.ZipInfo._for_archive()`.
Diffstat (limited to 'Lib/test/test_pathlib/test_join_windows.py')
-rw-r--r-- | Lib/test/test_pathlib/test_join_windows.py | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/Lib/test/test_pathlib/test_join_windows.py b/Lib/test/test_pathlib/test_join_windows.py index 783248d1697..2cc634f25ef 100644 --- a/Lib/test/test_pathlib/test_join_windows.py +++ b/Lib/test/test_pathlib/test_join_windows.py @@ -5,8 +5,8 @@ Tests for Windows-flavoured pathlib.types._JoinablePath import os import unittest -from pathlib import PureWindowsPath, WindowsPath -from test.test_pathlib.support.lexical_path import LexicalWindowsPath +from .support import is_pypi +from .support.lexical_path import LexicalWindowsPath class JoinTestBase: @@ -40,8 +40,6 @@ class JoinTestBase: pp = p.joinpath('E:d:s') self.assertEqual(pp, P('E:d:s')) # Joining onto a UNC path with no root - pp = P('//').joinpath('server') - self.assertEqual(pp, P('//server')) pp = P('//server').joinpath('share') self.assertEqual(pp, P(r'//server\share')) pp = P('//./BootPartition').joinpath('Windows') @@ -54,7 +52,7 @@ class JoinTestBase: self.assertEqual(p / 'x/y', P(r'C:/a/b\x/y')) self.assertEqual(p / 'x' / 'y', P(r'C:/a/b\x\y')) self.assertEqual(p / '/x/y', P('C:/x/y')) - self.assertEqual(p / '/x' / 'y', P('C:/x\y')) + self.assertEqual(p / '/x' / 'y', P(r'C:/x\y')) # Joining with a different drive => the first path is ignored, even # if the second path is relative. self.assertEqual(p / 'D:x/y', P('D:x/y')) @@ -277,13 +275,15 @@ class LexicalWindowsPathJoinTest(JoinTestBase, unittest.TestCase): cls = LexicalWindowsPath -class PureWindowsPathJoinTest(JoinTestBase, unittest.TestCase): - cls = PureWindowsPath +if not is_pypi: + from pathlib import PureWindowsPath, WindowsPath + class PureWindowsPathJoinTest(JoinTestBase, unittest.TestCase): + cls = PureWindowsPath -if os.name == 'nt': - class WindowsPathJoinTest(JoinTestBase, unittest.TestCase): - cls = WindowsPath + if os.name == 'nt': + class WindowsPathJoinTest(JoinTestBase, unittest.TestCase): + cls = WindowsPath if __name__ == "__main__": |