diff options
author | Barney Gale <barney.gale@gmail.com> | 2024-04-13 23:08:03 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-04-13 23:08:03 (GMT) |
commit | a74f117dab369e6c54156c7b2256769fed0c23d0 (patch) | |
tree | 6db14d7a5be43aadca9df39cb304141f5322dcf8 /Lib/test/test_pathlib/test_pathlib.py | |
parent | 3095d026424f11714f0b7a828c61dc741d4e716b (diff) | |
download | cpython-a74f117dab369e6c54156c7b2256769fed0c23d0.zip cpython-a74f117dab369e6c54156c7b2256769fed0c23d0.tar.gz cpython-a74f117dab369e6c54156c7b2256769fed0c23d0.tar.bz2 |
GH-115060: Speed up `pathlib.Path.glob()` by omitting initial `stat()` (#117831)
Since 6258844c, paths that might not exist can be fed into pathlib's
globbing implementation, which will call `os.scandir()` / `os.lstat()` only
when strictly necessary. This allows us to drop an initial `self.is_dir()`
call, which saves a `stat()`.
Co-authored-by: Shantanu <12621235+hauntsaninja@users.noreply.github.com>
Diffstat (limited to 'Lib/test/test_pathlib/test_pathlib.py')
-rw-r--r-- | Lib/test/test_pathlib/test_pathlib.py | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/Lib/test/test_pathlib/test_pathlib.py b/Lib/test/test_pathlib/test_pathlib.py index 651d666..5fd1a41 100644 --- a/Lib/test/test_pathlib/test_pathlib.py +++ b/Lib/test/test_pathlib/test_pathlib.py @@ -1263,6 +1263,13 @@ class PathTest(test_pathlib_abc.DummyPathTest, PurePathTest): self.assertEqual( set(P('.').glob('**/*/*')), {P("dirD/fileD")}) + def test_glob_inaccessible(self): + P = self.cls + p = P(self.base, "mydir1", "mydir2") + p.mkdir(parents=True) + p.parent.chmod(0) + self.assertEqual(set(p.glob('*')), set()) + def test_rglob_pathlike(self): P = self.cls p = P(self.base, "dirC") |