mirror of
https://github.com/python/cpython.git
synced 2025-08-30 05:35:08 +00:00
Issue #22759: Query methods on pathlib.Path() (exists(), is_dir(), etc.) now return False when the underlying stat call raises NotADirectoryError.
This commit is contained in:
commit
c689101a5e
3 changed files with 22 additions and 9 deletions
|
@ -1292,9 +1292,12 @@ class _BasePathTest(object):
|
|||
self.assertIs(True, p.exists())
|
||||
self.assertIs(True, (p / 'dirA').exists())
|
||||
self.assertIs(True, (p / 'fileA').exists())
|
||||
self.assertIs(False, (p / 'fileA' / 'bah').exists())
|
||||
if not symlink_skip_reason:
|
||||
self.assertIs(True, (p / 'linkA').exists())
|
||||
self.assertIs(True, (p / 'linkB').exists())
|
||||
self.assertIs(True, (p / 'linkB' / 'fileB').exists())
|
||||
self.assertIs(False, (p / 'linkA' / 'bah').exists())
|
||||
self.assertIs(False, (p / 'foo').exists())
|
||||
self.assertIs(False, P('/xyzzy').exists())
|
||||
|
||||
|
@ -1712,6 +1715,7 @@ class _BasePathTest(object):
|
|||
self.assertTrue((P / 'dirA').is_dir())
|
||||
self.assertFalse((P / 'fileA').is_dir())
|
||||
self.assertFalse((P / 'non-existing').is_dir())
|
||||
self.assertFalse((P / 'fileA' / 'bah').is_dir())
|
||||
if not symlink_skip_reason:
|
||||
self.assertFalse((P / 'linkA').is_dir())
|
||||
self.assertTrue((P / 'linkB').is_dir())
|
||||
|
@ -1722,6 +1726,7 @@ class _BasePathTest(object):
|
|||
self.assertTrue((P / 'fileA').is_file())
|
||||
self.assertFalse((P / 'dirA').is_file())
|
||||
self.assertFalse((P / 'non-existing').is_file())
|
||||
self.assertFalse((P / 'fileA' / 'bah').is_file())
|
||||
if not symlink_skip_reason:
|
||||
self.assertTrue((P / 'linkA').is_file())
|
||||
self.assertFalse((P / 'linkB').is_file())
|
||||
|
@ -1732,6 +1737,7 @@ class _BasePathTest(object):
|
|||
self.assertFalse((P / 'fileA').is_symlink())
|
||||
self.assertFalse((P / 'dirA').is_symlink())
|
||||
self.assertFalse((P / 'non-existing').is_symlink())
|
||||
self.assertFalse((P / 'fileA' / 'bah').is_symlink())
|
||||
if not symlink_skip_reason:
|
||||
self.assertTrue((P / 'linkA').is_symlink())
|
||||
self.assertTrue((P / 'linkB').is_symlink())
|
||||
|
@ -1742,6 +1748,7 @@ class _BasePathTest(object):
|
|||
self.assertFalse((P / 'fileA').is_fifo())
|
||||
self.assertFalse((P / 'dirA').is_fifo())
|
||||
self.assertFalse((P / 'non-existing').is_fifo())
|
||||
self.assertFalse((P / 'fileA' / 'bah').is_fifo())
|
||||
|
||||
@unittest.skipUnless(hasattr(os, "mkfifo"), "os.mkfifo() required")
|
||||
def test_is_fifo_true(self):
|
||||
|
@ -1756,6 +1763,7 @@ class _BasePathTest(object):
|
|||
self.assertFalse((P / 'fileA').is_socket())
|
||||
self.assertFalse((P / 'dirA').is_socket())
|
||||
self.assertFalse((P / 'non-existing').is_socket())
|
||||
self.assertFalse((P / 'fileA' / 'bah').is_socket())
|
||||
|
||||
@unittest.skipUnless(hasattr(socket, "AF_UNIX"), "Unix sockets required")
|
||||
def test_is_socket_true(self):
|
||||
|
@ -1776,12 +1784,14 @@ class _BasePathTest(object):
|
|||
self.assertFalse((P / 'fileA').is_block_device())
|
||||
self.assertFalse((P / 'dirA').is_block_device())
|
||||
self.assertFalse((P / 'non-existing').is_block_device())
|
||||
self.assertFalse((P / 'fileA' / 'bah').is_block_device())
|
||||
|
||||
def test_is_char_device_false(self):
|
||||
P = self.cls(BASE)
|
||||
self.assertFalse((P / 'fileA').is_char_device())
|
||||
self.assertFalse((P / 'dirA').is_char_device())
|
||||
self.assertFalse((P / 'non-existing').is_char_device())
|
||||
self.assertFalse((P / 'fileA' / 'bah').is_char_device())
|
||||
|
||||
def test_is_char_device_true(self):
|
||||
# Under Unix, /dev/null should generally be a char device
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue