aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_pathlib/test_join_windows.py
diff options
context:
space:
mode:
authorBarney Gale <barney.gale@gmail.com>2025-03-21 22:18:20 +0000
committerGitHub <noreply@github.com>2025-03-21 22:18:20 +0000
commitcf9d1a4b6b28a76a49edba4028d5533195172287 (patch)
treec20da37c6f435fe18a84b59ca83cbb3fae81c91f /Lib/test/test_pathlib/test_join_windows.py
parent56d0f9af147b2280ea0af7af5e57df1a01271991 (diff)
downloadcpython-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.py20
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__":