aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Lib/test/test_pathlib.py
diff options
context:
space:
mode:
authorBarney Gale <barney.gale@gmail.com>2023-12-03 20:35:10 +0000
committerGitHub <noreply@github.com>2023-12-03 20:35:10 +0000
commit09505c5c26d6a4c81b54786eb4196379e9cb223c (patch)
tree43c95b625c5ed18332719f03b1c6c04e0e6cffe9 /Lib/test/test_pathlib.py
parent489aeac3a2d3b347ff033334688e2f44eec7944a (diff)
downloadcpython-09505c5c26d6a4c81b54786eb4196379e9cb223c.tar.gz
cpython-09505c5c26d6a4c81b54786eb4196379e9cb223c.zip
GH-106747: Improve `Path.glob()` expectations in pathlib tests (#112365)
Add trailing slashes to expected `Path.glob()` results wherever a pattern has a trailing slash. This matches what `glob.glob()` produces. Due to another bug (GH-65238) pathlib strips all trailing slashes, so this change is academic for now.
Diffstat (limited to 'Lib/test/test_pathlib.py')
-rw-r--r--Lib/test/test_pathlib.py66
1 files changed, 33 insertions, 33 deletions
diff --git a/Lib/test/test_pathlib.py b/Lib/test/test_pathlib.py
index 427e082f3e1..ccaef070974 100644
--- a/Lib/test/test_pathlib.py
+++ b/Lib/test/test_pathlib.py
@@ -1968,9 +1968,9 @@ class DummyPathTest(unittest.TestCase):
_check(p.glob("brokenLink"), ['brokenLink'])
if not self.can_symlink:
- _check(p.glob("*/"), ["dirA", "dirB", "dirC", "dirE"])
+ _check(p.glob("*/"), ["dirA/", "dirB/", "dirC/", "dirE/"])
else:
- _check(p.glob("*/"), ["dirA", "dirB", "dirC", "dirE", "linkB"])
+ _check(p.glob("*/"), ["dirA/", "dirB/", "dirC/", "dirE/", "linkB/"])
def test_glob_empty_pattern(self):
p = self.cls()
@@ -2003,17 +2003,17 @@ class DummyPathTest(unittest.TestCase):
_check(p, "*A", ["dirA", "fileA", "linkA"])
_check(p, "*B/*", ["dirB/fileB", "dirB/linkD", "linkB/fileB", "linkB/linkD"])
_check(p, "*/fileB", ["dirB/fileB", "linkB/fileB"])
- _check(p, "*/", ["dirA", "dirB", "dirC", "dirE", "linkB"])
+ _check(p, "*/", ["dirA/", "dirB/", "dirC/", "dirE/", "linkB/"])
_check(p, "dir*/*/..", ["dirC/dirD/..", "dirA/linkC/.."])
- _check(p, "dir*/**/", ["dirA", "dirA/linkC", "dirA/linkC/linkD", "dirB", "dirB/linkD",
- "dirC", "dirC/dirD", "dirE"])
+ _check(p, "dir*/**/", ["dirA/", "dirA/linkC/", "dirA/linkC/linkD/", "dirB/", "dirB/linkD/",
+ "dirC/", "dirC/dirD/", "dirE/"])
_check(p, "dir*/**/..", ["dirA/..", "dirA/linkC/..", "dirB/..",
"dirC/..", "dirC/dirD/..", "dirE/.."])
- _check(p, "dir*/*/**/", ["dirA/linkC", "dirA/linkC/linkD", "dirB/linkD", "dirC/dirD"])
+ _check(p, "dir*/*/**/", ["dirA/linkC/", "dirA/linkC/linkD/", "dirB/linkD/", "dirC/dirD/"])
_check(p, "dir*/*/**/..", ["dirA/linkC/..", "dirC/dirD/.."])
_check(p, "dir*/**/fileC", ["dirC/fileC"])
- _check(p, "dir*/*/../dirD/**/", ["dirC/dirD/../dirD"])
- _check(p, "*/dirD/**/", ["dirC/dirD"])
+ _check(p, "dir*/*/../dirD/**/", ["dirC/dirD/../dirD/"])
+ _check(p, "*/dirD/**/", ["dirC/dirD/"])
def test_glob_no_follow_symlinks_common(self):
if not self.can_symlink:
@@ -2028,15 +2028,15 @@ class DummyPathTest(unittest.TestCase):
_check(p, "*A", ["dirA", "fileA", "linkA"])
_check(p, "*B/*", ["dirB/fileB", "dirB/linkD"])
_check(p, "*/fileB", ["dirB/fileB"])
- _check(p, "*/", ["dirA", "dirB", "dirC", "dirE"])
+ _check(p, "*/", ["dirA/", "dirB/", "dirC/", "dirE/"])
_check(p, "dir*/*/..", ["dirC/dirD/.."])
- _check(p, "dir*/**/", ["dirA", "dirB", "dirC", "dirC/dirD", "dirE"])
+ _check(p, "dir*/**/", ["dirA/", "dirB/", "dirC/", "dirC/dirD/", "dirE/"])
_check(p, "dir*/**/..", ["dirA/..", "dirB/..", "dirC/..", "dirC/dirD/..", "dirE/.."])
- _check(p, "dir*/*/**/", ["dirC/dirD"])
+ _check(p, "dir*/*/**/", ["dirC/dirD/"])
_check(p, "dir*/*/**/..", ["dirC/dirD/.."])
_check(p, "dir*/**/fileC", ["dirC/fileC"])
- _check(p, "dir*/*/../dirD/**/", ["dirC/dirD/../dirD"])
- _check(p, "*/dirD/**/", ["dirC/dirD"])
+ _check(p, "dir*/*/../dirD/**/", ["dirC/dirD/../dirD/"])
+ _check(p, "*/dirD/**/", ["dirC/dirD/"])
def test_rglob_common(self):
def _check(glob, expected):
@@ -2058,25 +2058,25 @@ class DummyPathTest(unittest.TestCase):
"dirC/fileC", "dirC/dirD/fileD"])
if not self.can_symlink:
_check(p.rglob("*/"), [
- "dirA", "dirB", "dirC", "dirC/dirD", "dirE",
+ "dirA/", "dirB/", "dirC/", "dirC/dirD/", "dirE/",
])
else:
_check(p.rglob("*/"), [
- "dirA", "dirA/linkC", "dirB", "dirB/linkD", "dirC",
- "dirC/dirD", "dirE", "linkB",
+ "dirA/", "dirA/linkC/", "dirB/", "dirB/linkD/", "dirC/",
+ "dirC/dirD/", "dirE/", "linkB/",
])
- _check(p.rglob(""), ["", "dirA", "dirB", "dirC", "dirE", "dirC/dirD"])
+ _check(p.rglob(""), ["./", "dirA/", "dirB/", "dirC/", "dirE/", "dirC/dirD/"])
p = P(BASE, "dirC")
_check(p.rglob("*"), ["dirC/fileC", "dirC/novel.txt",
"dirC/dirD", "dirC/dirD/fileD"])
_check(p.rglob("file*"), ["dirC/fileC", "dirC/dirD/fileD"])
_check(p.rglob("**/file*"), ["dirC/fileC", "dirC/dirD/fileD"])
- _check(p.rglob("dir*/**/"), ["dirC/dirD"])
+ _check(p.rglob("dir*/**/"), ["dirC/dirD/"])
_check(p.rglob("*/*"), ["dirC/dirD/fileD"])
- _check(p.rglob("*/"), ["dirC/dirD"])
- _check(p.rglob(""), ["dirC", "dirC/dirD"])
- _check(p.rglob("**/"), ["dirC", "dirC/dirD"])
+ _check(p.rglob("*/"), ["dirC/dirD/"])
+ _check(p.rglob(""), ["dirC/", "dirC/dirD/"])
+ _check(p.rglob("**/"), ["dirC/", "dirC/dirD/"])
# gh-91616, a re module regression
_check(p.rglob("*.txt"), ["dirC/novel.txt"])
_check(p.rglob("*.*"), ["dirC/novel.txt"])
@@ -2095,18 +2095,18 @@ class DummyPathTest(unittest.TestCase):
_check(p, "*/fileB", ["dirB/fileB", "dirA/linkC/fileB", "linkB/fileB"])
_check(p, "file*", ["fileA", "dirA/linkC/fileB", "dirB/fileB",
"dirC/fileC", "dirC/dirD/fileD", "linkB/fileB"])
- _check(p, "*/", ["dirA", "dirA/linkC", "dirA/linkC/linkD", "dirB", "dirB/linkD",
- "dirC", "dirC/dirD", "dirE", "linkB", "linkB/linkD"])
- _check(p, "", ["", "dirA", "dirA/linkC", "dirA/linkC/linkD", "dirB", "dirB/linkD",
- "dirC", "dirE", "dirC/dirD", "linkB", "linkB/linkD"])
+ _check(p, "*/", ["dirA/", "dirA/linkC/", "dirA/linkC/linkD/", "dirB/", "dirB/linkD/",
+ "dirC/", "dirC/dirD/", "dirE/", "linkB/", "linkB/linkD/"])
+ _check(p, "", ["./", "dirA/", "dirA/linkC/", "dirA/linkC/linkD/", "dirB/", "dirB/linkD/",
+ "dirC/", "dirE/", "dirC/dirD/", "linkB/", "linkB/linkD/"])
p = P(BASE, "dirC")
_check(p, "*", ["dirC/fileC", "dirC/novel.txt",
"dirC/dirD", "dirC/dirD/fileD"])
_check(p, "file*", ["dirC/fileC", "dirC/dirD/fileD"])
_check(p, "*/*", ["dirC/dirD/fileD"])
- _check(p, "*/", ["dirC/dirD"])
- _check(p, "", ["dirC", "dirC/dirD"])
+ _check(p, "*/", ["dirC/dirD/"])
+ _check(p, "", ["dirC/", "dirC/dirD/"])
# gh-91616, a re module regression
_check(p, "*.txt", ["dirC/novel.txt"])
_check(p, "*.*", ["dirC/novel.txt"])
@@ -2123,16 +2123,16 @@ class DummyPathTest(unittest.TestCase):
_check(p, "*/fileA", [])
_check(p, "*/fileB", ["dirB/fileB"])
_check(p, "file*", ["fileA", "dirB/fileB", "dirC/fileC", "dirC/dirD/fileD", ])
- _check(p, "*/", ["dirA", "dirB", "dirC", "dirC/dirD", "dirE"])
- _check(p, "", ["", "dirA", "dirB", "dirC", "dirE", "dirC/dirD"])
+ _check(p, "*/", ["dirA/", "dirB/", "dirC/", "dirC/dirD/", "dirE/"])
+ _check(p, "", ["./", "dirA/", "dirB/", "dirC/", "dirE/", "dirC/dirD/"])
p = P(BASE, "dirC")
_check(p, "*", ["dirC/fileC", "dirC/novel.txt",
"dirC/dirD", "dirC/dirD/fileD"])
_check(p, "file*", ["dirC/fileC", "dirC/dirD/fileD"])
_check(p, "*/*", ["dirC/dirD/fileD"])
- _check(p, "*/", ["dirC/dirD"])
- _check(p, "", ["dirC", "dirC/dirD"])
+ _check(p, "*/", ["dirC/dirD/"])
+ _check(p, "", ["dirC/", "dirC/dirD/"])
# gh-91616, a re module regression
_check(p, "*.txt", ["dirC/novel.txt"])
_check(p, "*.*", ["dirC/novel.txt"])
@@ -3642,7 +3642,7 @@ class WindowsPathTest(PathTest, PureWindowsPathTest):
P = self.cls
p = P(BASE)
self.assertEqual(set(p.glob("FILEa")), { P(BASE, "fileA") })
- self.assertEqual(set(p.glob("*a\\")), { P(BASE, "dirA") })
+ self.assertEqual(set(p.glob("*a\\")), { P(BASE, "dirA/") })
self.assertEqual(set(p.glob("F*a")), { P(BASE, "fileA") })
self.assertEqual(set(map(str, p.glob("FILEa"))), {f"{p}\\fileA"})
self.assertEqual(set(map(str, p.glob("F*a"))), {f"{p}\\fileA"})
@@ -3651,7 +3651,7 @@ class WindowsPathTest(PathTest, PureWindowsPathTest):
P = self.cls
p = P(BASE, "dirC")
self.assertEqual(set(p.rglob("FILEd")), { P(BASE, "dirC/dirD/fileD") })
- self.assertEqual(set(p.rglob("*\\")), { P(BASE, "dirC/dirD") })
+ self.assertEqual(set(p.rglob("*\\")), { P(BASE, "dirC/dirD/") })
self.assertEqual(set(map(str, p.rglob("FILEd"))), {f"{p}\\dirD\\fileD"})
def test_expanduser(self):