gh-71253: Match _io exception in _pyio (gh-133985)
Test was only testing _io, expanded to cover _pyio. Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
This commit is contained in:
parent
84d5f8d799
commit
06eaf4055c
@ -1563,7 +1563,8 @@ class FileIO(RawIOBase):
|
|||||||
if not isinstance(fd, int):
|
if not isinstance(fd, int):
|
||||||
raise TypeError('expected integer from opener')
|
raise TypeError('expected integer from opener')
|
||||||
if fd < 0:
|
if fd < 0:
|
||||||
raise OSError('Negative file descriptor')
|
# bpo-27066: Raise a ValueError for bad value.
|
||||||
|
raise ValueError(f'opener returned {fd}')
|
||||||
owned_fd = fd
|
owned_fd = fd
|
||||||
if not noinherit_flag:
|
if not noinherit_flag:
|
||||||
os.set_inheritable(fd, False)
|
os.set_inheritable(fd, False)
|
||||||
|
@ -918,7 +918,7 @@ class IOTest(unittest.TestCase):
|
|||||||
def badopener(fname, flags):
|
def badopener(fname, flags):
|
||||||
return -1
|
return -1
|
||||||
with self.assertRaises(ValueError) as cm:
|
with self.assertRaises(ValueError) as cm:
|
||||||
open('non-existent', 'r', opener=badopener)
|
self.open('non-existent', 'r', opener=badopener)
|
||||||
self.assertEqual(str(cm.exception), 'opener returned -1')
|
self.assertEqual(str(cm.exception), 'opener returned -1')
|
||||||
|
|
||||||
def test_bad_opener_other_negative(self):
|
def test_bad_opener_other_negative(self):
|
||||||
@ -926,7 +926,7 @@ class IOTest(unittest.TestCase):
|
|||||||
def badopener(fname, flags):
|
def badopener(fname, flags):
|
||||||
return -2
|
return -2
|
||||||
with self.assertRaises(ValueError) as cm:
|
with self.assertRaises(ValueError) as cm:
|
||||||
open('non-existent', 'r', opener=badopener)
|
self.open('non-existent', 'r', opener=badopener)
|
||||||
self.assertEqual(str(cm.exception), 'opener returned -2')
|
self.assertEqual(str(cm.exception), 'opener returned -2')
|
||||||
|
|
||||||
def test_opener_invalid_fd(self):
|
def test_opener_invalid_fd(self):
|
||||||
|
@ -0,0 +1,3 @@
|
|||||||
|
Raise :exc:`ValueError` in :func:`open` if *opener* returns a negative
|
||||||
|
file-descriptor in the Python implementation of :mod:`io` to match the
|
||||||
|
C implementation.
|
Loading…
x
Reference in New Issue
Block a user