mirror of
https://github.com/python/cpython.git
synced 2025-09-12 19:57:40 +00:00
GH-105793: Add follow_symlinks argument to pathlib.Path.is_dir()
and is_file()
(GH-105794)
Brings `pathlib.Path.is_dir()` and `in line with `os.DirEntry.is_dir()`, which will be important for implementing generic path walking and globbing. Likewise `is_file()`.
This commit is contained in:
parent
5d4dbf0e30
commit
219effa876
5 changed files with 59 additions and 18 deletions
|
@ -2191,9 +2191,22 @@ class PathTest(unittest.TestCase):
|
|||
if os_helper.can_symlink():
|
||||
self.assertFalse((P / 'linkA').is_dir())
|
||||
self.assertTrue((P / 'linkB').is_dir())
|
||||
self.assertFalse((P/ 'brokenLink').is_dir(), False)
|
||||
self.assertIs((P / 'dirA\udfff').is_dir(), False)
|
||||
self.assertIs((P / 'dirA\x00').is_dir(), False)
|
||||
self.assertFalse((P/ 'brokenLink').is_dir())
|
||||
self.assertFalse((P / 'dirA\udfff').is_dir())
|
||||
self.assertFalse((P / 'dirA\x00').is_dir())
|
||||
|
||||
def test_is_dir_no_follow_symlinks(self):
|
||||
P = self.cls(BASE)
|
||||
self.assertTrue((P / 'dirA').is_dir(follow_symlinks=False))
|
||||
self.assertFalse((P / 'fileA').is_dir(follow_symlinks=False))
|
||||
self.assertFalse((P / 'non-existing').is_dir(follow_symlinks=False))
|
||||
self.assertFalse((P / 'fileA' / 'bah').is_dir(follow_symlinks=False))
|
||||
if os_helper.can_symlink():
|
||||
self.assertFalse((P / 'linkA').is_dir(follow_symlinks=False))
|
||||
self.assertFalse((P / 'linkB').is_dir(follow_symlinks=False))
|
||||
self.assertFalse((P/ 'brokenLink').is_dir(follow_symlinks=False))
|
||||
self.assertFalse((P / 'dirA\udfff').is_dir(follow_symlinks=False))
|
||||
self.assertFalse((P / 'dirA\x00').is_dir(follow_symlinks=False))
|
||||
|
||||
def test_is_file(self):
|
||||
P = self.cls(BASE)
|
||||
|
@ -2205,8 +2218,21 @@ class PathTest(unittest.TestCase):
|
|||
self.assertTrue((P / 'linkA').is_file())
|
||||
self.assertFalse((P / 'linkB').is_file())
|
||||
self.assertFalse((P/ 'brokenLink').is_file())
|
||||
self.assertIs((P / 'fileA\udfff').is_file(), False)
|
||||
self.assertIs((P / 'fileA\x00').is_file(), False)
|
||||
self.assertFalse((P / 'fileA\udfff').is_file())
|
||||
self.assertFalse((P / 'fileA\x00').is_file())
|
||||
|
||||
def test_is_file_no_follow_symlinks(self):
|
||||
P = self.cls(BASE)
|
||||
self.assertTrue((P / 'fileA').is_file(follow_symlinks=False))
|
||||
self.assertFalse((P / 'dirA').is_file(follow_symlinks=False))
|
||||
self.assertFalse((P / 'non-existing').is_file(follow_symlinks=False))
|
||||
self.assertFalse((P / 'fileA' / 'bah').is_file(follow_symlinks=False))
|
||||
if os_helper.can_symlink():
|
||||
self.assertFalse((P / 'linkA').is_file(follow_symlinks=False))
|
||||
self.assertFalse((P / 'linkB').is_file(follow_symlinks=False))
|
||||
self.assertFalse((P/ 'brokenLink').is_file(follow_symlinks=False))
|
||||
self.assertFalse((P / 'fileA\udfff').is_file(follow_symlinks=False))
|
||||
self.assertFalse((P / 'fileA\x00').is_file(follow_symlinks=False))
|
||||
|
||||
def test_is_mount(self):
|
||||
P = self.cls(BASE)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue