summaryrefslogtreecommitdiffstats
path: root/Lib/test/test_pathlib/test_pathlib.py
diff options
context:
space:
mode:
authorBarney Gale <barney.gale@gmail.com>2024-01-13 07:36:05 (GMT)
committerGitHub <noreply@github.com>2024-01-13 07:36:05 (GMT)
commite4ff131e01184b68d868cfd241a03f8b7d2e0ff9 (patch)
tree0292c431d2dd38f47a265d1d25d961ef86ec43b7 /Lib/test/test_pathlib/test_pathlib.py
parentdac1da21218a406652b35919aa2118cc32d4c65a (diff)
downloadcpython-e4ff131e01184b68d868cfd241a03f8b7d2e0ff9.zip
cpython-e4ff131e01184b68d868cfd241a03f8b7d2e0ff9.tar.gz
cpython-e4ff131e01184b68d868cfd241a03f8b7d2e0ff9.tar.bz2
GH-44626, GH-105476: Fix `ntpath.isabs()` handling of part-absolute paths (#113829)
On Windows, `os.path.isabs()` now returns `False` when given a path that starts with exactly one (back)slash. This is more compatible with other functions in `os.path`, and with Microsoft's own documentation. Also adjust `pathlib.PureWindowsPath.is_absolute()` to call `ntpath.isabs()`, which corrects its handling of partial UNC/device paths like `//foo`. Co-authored-by: Jon Foster <jon@jon-foster.co.uk>
Diffstat (limited to 'Lib/test/test_pathlib/test_pathlib.py')
-rw-r--r--Lib/test/test_pathlib/test_pathlib.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/Lib/test/test_pathlib/test_pathlib.py b/Lib/test/test_pathlib/test_pathlib.py
index 04e6280..1b560ad 100644
--- a/Lib/test/test_pathlib/test_pathlib.py
+++ b/Lib/test/test_pathlib/test_pathlib.py
@@ -1011,10 +1011,14 @@ class PureWindowsPathTest(PurePathTest):
self.assertTrue(P('c:/a').is_absolute())
self.assertTrue(P('c:/a/b/').is_absolute())
# UNC paths are absolute by definition.
+ self.assertTrue(P('//').is_absolute())
+ self.assertTrue(P('//a').is_absolute())
self.assertTrue(P('//a/b').is_absolute())
self.assertTrue(P('//a/b/').is_absolute())
self.assertTrue(P('//a/b/c').is_absolute())
self.assertTrue(P('//a/b/c/d').is_absolute())
+ self.assertTrue(P('//?/UNC/').is_absolute())
+ self.assertTrue(P('//?/UNC/spam').is_absolute())
def test_join(self):
P = self.cls