GeezerVison is showing github.com — GH-106747: Improve `Path.glob()` expectations in pathlib tests (#112365) · python/cpython@09505c5
File treeExpand file treeCollapse file tree Open diff view settings Expand file treeCollapse file tree Open diff view settings Collapse file Copy file name to clipboardExpand all lines: Lib/test/test_pathlib.py +33-33Lines changed: 33 additions & 33 deletions | Original file line number | Diff line number | Diff line change |
|---|
@@ -1968,9 +1968,9 @@ def _check(glob, expected): | 1968 | 1968 | _check(p.glob("brokenLink"), ['brokenLink']) | 1969 | 1969 |
| 1970 | 1970 | if not self.can_symlink: | 1971 | | - _check(p.glob("*/"), ["dirA", "dirB", "dirC", "dirE"]) | | 1971 | + _check(p.glob("*/"), ["dirA/", "dirB/", "dirC/", "dirE/"]) | 1972 | 1972 | else: | 1973 | | - _check(p.glob("*/"), ["dirA", "dirB", "dirC", "dirE", "linkB"]) | | 1973 | + _check(p.glob("*/"), ["dirA/", "dirB/", "dirC/", "dirE/", "linkB/"]) | 1974 | 1974 |
| 1975 | 1975 | def test_glob_empty_pattern(self): | 1976 | 1976 | p = self.cls() | @@ -2003,17 +2003,17 @@ def _check(path, glob, expected): | 2003 | 2003 | _check(p, "*A", ["dirA", "fileA", "linkA"]) | 2004 | 2004 | _check(p, "*B/*", ["dirB/fileB", "dirB/linkD", "linkB/fileB", "linkB/linkD"]) | 2005 | 2005 | _check(p, "*/fileB", ["dirB/fileB", "linkB/fileB"]) | 2006 | | - _check(p, "*/", ["dirA", "dirB", "dirC", "dirE", "linkB"]) | | 2006 | + _check(p, "*/", ["dirA/", "dirB/", "dirC/", "dirE/", "linkB/"]) | 2007 | 2007 | _check(p, "dir*/*/..", ["dirC/dirD/..", "dirA/linkC/.."]) | 2008 | | - _check(p, "dir*/**/", ["dirA", "dirA/linkC", "dirA/linkC/linkD", "dirB", "dirB/linkD", | 2009 | | - "dirC", "dirC/dirD", "dirE"]) | | 2008 | + _check(p, "dir*/**/", ["dirA/", "dirA/linkC/", "dirA/linkC/linkD/", "dirB/", "dirB/linkD/", | | 2009 | + "dirC/", "dirC/dirD/", "dirE/"]) | 2010 | 2010 | _check(p, "dir*/**/..", ["dirA/..", "dirA/linkC/..", "dirB/..", | 2011 | 2011 | "dirC/..", "dirC/dirD/..", "dirE/.."]) | 2012 | | - _check(p, "dir*/*/**/", ["dirA/linkC", "dirA/linkC/linkD", "dirB/linkD", "dirC/dirD"]) | | 2012 | + _check(p, "dir*/*/**/", ["dirA/linkC/", "dirA/linkC/linkD/", "dirB/linkD/", "dirC/dirD/"]) | 2013 | 2013 | _check(p, "dir*/*/**/..", ["dirA/linkC/..", "dirC/dirD/.."]) | 2014 | 2014 | _check(p, "dir*/**/fileC", ["dirC/fileC"]) | 2015 | | - _check(p, "dir*/*/../dirD/**/", ["dirC/dirD/../dirD"]) | 2016 | | - _check(p, "*/dirD/**/", ["dirC/dirD"]) | | 2015 | + _check(p, "dir*/*/../dirD/**/", ["dirC/dirD/../dirD/"]) | | 2016 | + _check(p, "*/dirD/**/", ["dirC/dirD/"]) | 2017 | 2017 |
| 2018 | 2018 | def test_glob_no_follow_symlinks_common(self): | 2019 | 2019 | if not self.can_symlink: | @@ -2028,15 +2028,15 @@ def _check(path, glob, expected): | 2028 | 2028 | _check(p, "*A", ["dirA", "fileA", "linkA"]) | 2029 | 2029 | _check(p, "*B/*", ["dirB/fileB", "dirB/linkD"]) | 2030 | 2030 | _check(p, "*/fileB", ["dirB/fileB"]) | 2031 | | - _check(p, "*/", ["dirA", "dirB", "dirC", "dirE"]) | | 2031 | + _check(p, "*/", ["dirA/", "dirB/", "dirC/", "dirE/"]) | 2032 | 2032 | _check(p, "dir*/*/..", ["dirC/dirD/.."]) | 2033 | | - _check(p, "dir*/**/", ["dirA", "dirB", "dirC", "dirC/dirD", "dirE"]) | | 2033 | + _check(p, "dir*/**/", ["dirA/", "dirB/", "dirC/", "dirC/dirD/", "dirE/"]) | 2034 | 2034 | _check(p, "dir*/**/..", ["dirA/..", "dirB/..", "dirC/..", "dirC/dirD/..", "dirE/.."]) | 2035 | | - _check(p, "dir*/*/**/", ["dirC/dirD"]) | | 2035 | + _check(p, "dir*/*/**/", ["dirC/dirD/"]) | 2036 | 2036 | _check(p, "dir*/*/**/..", ["dirC/dirD/.."]) | 2037 | 2037 | _check(p, "dir*/**/fileC", ["dirC/fileC"]) | 2038 | | - _check(p, "dir*/*/../dirD/**/", ["dirC/dirD/../dirD"]) | 2039 | | - _check(p, "*/dirD/**/", ["dirC/dirD"]) | | 2038 | + _check(p, "dir*/*/../dirD/**/", ["dirC/dirD/../dirD/"]) | | 2039 | + _check(p, "*/dirD/**/", ["dirC/dirD/"]) | 2040 | 2040 |
| 2041 | 2041 | def test_rglob_common(self): | 2042 | 2042 | def _check(glob, expected): | @@ -2058,25 +2058,25 @@ def _check(glob, expected): | 2058 | 2058 | "dirC/fileC", "dirC/dirD/fileD"]) | 2059 | 2059 | if not self.can_symlink: | 2060 | 2060 | _check(p.rglob("*/"), [ | 2061 | | - "dirA", "dirB", "dirC", "dirC/dirD", "dirE", | | 2061 | + "dirA/", "dirB/", "dirC/", "dirC/dirD/", "dirE/", | 2062 | 2062 | ]) | 2063 | 2063 | else: | 2064 | 2064 | _check(p.rglob("*/"), [ | 2065 | | - "dirA", "dirA/linkC", "dirB", "dirB/linkD", "dirC", | 2066 | | - "dirC/dirD", "dirE", "linkB", | | 2065 | + "dirA/", "dirA/linkC/", "dirB/", "dirB/linkD/", "dirC/", | | 2066 | + "dirC/dirD/", "dirE/", "linkB/", | 2067 | 2067 | ]) | 2068 | | - _check(p.rglob(""), ["", "dirA", "dirB", "dirC", "dirE", "dirC/dirD"]) | | 2068 | + _check(p.rglob(""), ["./", "dirA/", "dirB/", "dirC/", "dirE/", "dirC/dirD/"]) | 2069 | 2069 |
| 2070 | 2070 | p = P(BASE, "dirC") | 2071 | 2071 | _check(p.rglob("*"), ["dirC/fileC", "dirC/novel.txt", | 2072 | 2072 | "dirC/dirD", "dirC/dirD/fileD"]) | 2073 | 2073 | _check(p.rglob("file*"), ["dirC/fileC", "dirC/dirD/fileD"]) | 2074 | 2074 | _check(p.rglob("**/file*"), ["dirC/fileC", "dirC/dirD/fileD"]) | 2075 | | - _check(p.rglob("dir*/**/"), ["dirC/dirD"]) | | 2075 | + _check(p.rglob("dir*/**/"), ["dirC/dirD/"]) | 2076 | 2076 | _check(p.rglob("*/*"), ["dirC/dirD/fileD"]) | 2077 | | - _check(p.rglob("*/"), ["dirC/dirD"]) | 2078 | | - _check(p.rglob(""), ["dirC", "dirC/dirD"]) | 2079 | | - _check(p.rglob("**/"), ["dirC", "dirC/dirD"]) | | 2077 | + _check(p.rglob("*/"), ["dirC/dirD/"]) | | 2078 | + _check(p.rglob(""), ["dirC/", "dirC/dirD/"]) | | 2079 | + _check(p.rglob("**/"), ["dirC/", "dirC/dirD/"]) | 2080 | 2080 | # gh-91616, a re module regression | 2081 | 2081 | _check(p.rglob("*.txt"), ["dirC/novel.txt"]) | 2082 | 2082 | _check(p.rglob("*.*"), ["dirC/novel.txt"]) | @@ -2095,18 +2095,18 @@ def _check(path, glob, expected): | 2095 | 2095 | _check(p, "*/fileB", ["dirB/fileB", "dirA/linkC/fileB", "linkB/fileB"]) | 2096 | 2096 | _check(p, "file*", ["fileA", "dirA/linkC/fileB", "dirB/fileB", | 2097 | 2097 | "dirC/fileC", "dirC/dirD/fileD", "linkB/fileB"]) | 2098 | | - _check(p, "*/", ["dirA", "dirA/linkC", "dirA/linkC/linkD", "dirB", "dirB/linkD", | 2099 | | - "dirC", "dirC/dirD", "dirE", "linkB", "linkB/linkD"]) | 2100 | | - _check(p, "", ["", "dirA", "dirA/linkC", "dirA/linkC/linkD", "dirB", "dirB/linkD", | 2101 | | - "dirC", "dirE", "dirC/dirD", "linkB", "linkB/linkD"]) | | 2098 | + _check(p, "*/", ["dirA/", "dirA/linkC/", "dirA/linkC/linkD/", "dirB/", "dirB/linkD/", | | 2099 | + "dirC/", "dirC/dirD/", "dirE/", "linkB/", "linkB/linkD/"]) | | 2100 | + _check(p, "", ["./", "dirA/", "dirA/linkC/", "dirA/linkC/linkD/", "dirB/", "dirB/linkD/", | | 2101 | + "dirC/", "dirE/", "dirC/dirD/", "linkB/", "linkB/linkD/"]) | 2102 | 2102 |
| 2103 | 2103 | p = P(BASE, "dirC") | 2104 | 2104 | _check(p, "*", ["dirC/fileC", "dirC/novel.txt", | 2105 | 2105 | "dirC/dirD", "dirC/dirD/fileD"]) | 2106 | 2106 | _check(p, "file*", ["dirC/fileC", "dirC/dirD/fileD"]) | 2107 | 2107 | _check(p, "*/*", ["dirC/dirD/fileD"]) | 2108 | | - _check(p, "*/", ["dirC/dirD"]) | 2109 | | - _check(p, "", ["dirC", "dirC/dirD"]) | | 2108 | + _check(p, "*/", ["dirC/dirD/"]) | | 2109 | + _check(p, "", ["dirC/", "dirC/dirD/"]) | 2110 | 2110 | # gh-91616, a re module regression | 2111 | 2111 | _check(p, "*.txt", ["dirC/novel.txt"]) | 2112 | 2112 | _check(p, "*.*", ["dirC/novel.txt"]) | @@ -2123,16 +2123,16 @@ def _check(path, glob, expected): | 2123 | 2123 | _check(p, "*/fileA", []) | 2124 | 2124 | _check(p, "*/fileB", ["dirB/fileB"]) | 2125 | 2125 | _check(p, "file*", ["fileA", "dirB/fileB", "dirC/fileC", "dirC/dirD/fileD", ]) | 2126 | | - _check(p, "*/", ["dirA", "dirB", "dirC", "dirC/dirD", "dirE"]) | 2127 | | - _check(p, "", ["", "dirA", "dirB", "dirC", "dirE", "dirC/dirD"]) | | 2126 | + _check(p, "*/", ["dirA/", "dirB/", "dirC/", "dirC/dirD/", "dirE/"]) | | 2127 | + _check(p, "", ["./", "dirA/", "dirB/", "dirC/", "dirE/", "dirC/dirD/"]) | 2128 | 2128 |
| 2129 | 2129 | p = P(BASE, "dirC") | 2130 | 2130 | _check(p, "*", ["dirC/fileC", "dirC/novel.txt", | 2131 | 2131 | "dirC/dirD", "dirC/dirD/fileD"]) | 2132 | 2132 | _check(p, "file*", ["dirC/fileC", "dirC/dirD/fileD"]) | 2133 | 2133 | _check(p, "*/*", ["dirC/dirD/fileD"]) | 2134 | | - _check(p, "*/", ["dirC/dirD"]) | 2135 | | - _check(p, "", ["dirC", "dirC/dirD"]) | | 2134 | + _check(p, "*/", ["dirC/dirD/"]) | | 2135 | + _check(p, "", ["dirC/", "dirC/dirD/"]) | 2136 | 2136 | # gh-91616, a re module regression | 2137 | 2137 | _check(p, "*.txt", ["dirC/novel.txt"]) | 2138 | 2138 | _check(p, "*.*", ["dirC/novel.txt"]) | @@ -3642,7 +3642,7 @@ def test_glob(self): | 3642 | 3642 | P = self.cls | 3643 | 3643 | p = P(BASE) | 3644 | 3644 | self.assertEqual(set(p.glob("FILEa")), { P(BASE, "fileA") }) | 3645 | | - self.assertEqual(set(p.glob("*a\\")), { P(BASE, "dirA") }) | | 3645 | + self.assertEqual(set(p.glob("*a\\")), { P(BASE, "dirA/") }) | 3646 | 3646 | self.assertEqual(set(p.glob("F*a")), { P(BASE, "fileA") }) | 3647 | 3647 | self.assertEqual(set(map(str, p.glob("FILEa"))), {f"{p}\\fileA"}) | 3648 | 3648 | self.assertEqual(set(map(str, p.glob("F*a"))), {f"{p}\\fileA"}) | @@ -3651,7 +3651,7 @@ def test_rglob(self): | 3651 | 3651 | P = self.cls | 3652 | 3652 | p = P(BASE, "dirC") | 3653 | 3653 | self.assertEqual(set(p.rglob("FILEd")), { P(BASE, "dirC/dirD/fileD") }) | 3654 | | - self.assertEqual(set(p.rglob("*\\")), { P(BASE, "dirC/dirD") }) | | 3654 | + self.assertEqual(set(p.rglob("*\\")), { P(BASE, "dirC/dirD/") }) | 3655 | 3655 | self.assertEqual(set(map(str, p.rglob("FILEd"))), {f"{p}\\dirD\\fileD"}) | 3656 | 3656 |
| 3657 | 3657 | def test_expanduser(self): | |
|