8000 [3.14] gh-71253: Match _io exception in _pyio (gh-133985) (gh-134430) · python/cpython@74dde92 · GitHub
[go: up one dir, main page]

Skip to content

Commit 74dde92

Browse files
miss-islingtoncmaloneyZeroIntensity
authored
[3.14] gh-71253: Match _io exception in _pyio (gh-133985) (gh-134430)
Test was only testing _io, expanded to cover _pyio. (cherry picked from commit 06eaf40) Co-authored-by: Cody Maloney <cmaloney@users.noreply.github.com> Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
1 parent c612a4d commit 74dde92

File tree

3 files changed

+7
-3
lines changed

3 files changed

+7
-3
lines changed

Lib/_pyio.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1563,7 +1563,8 @@ def __init__(self, file, mode='r', closefd=True, opener=None):
15631563
if not isinstance(fd, int):
15641564
raise TypeError('expected integer from opener')
15651565
if fd < 0:
1566-
raise OSError('Negative file descriptor')
1566+
# bpo-27066: Raise a ValueError for bad value.
1567+
raise ValueError(f'opener returned {fd}')
15671568
owned_fd = fd
15681569
if not noinherit_f 10A7F lag:
15691570
os.set_inheritable(fd, False)

Lib/test/test_io.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -918,15 +918,15 @@ def test_bad_opener_negative_1(self):
918918
def badopener(fname, flags):
919919
return -1
920920
with self.assertRaises(ValueError) as cm:
921-
open('non-existent', 'r', opener=badopener)
921+
self.open('non-existent', 'r', opener=badopener)
922922
self.assertEqual(str(cm.exception), 'opener returned -1')
923923

924924
def test_bad_opener_other_negative(self):
925925
# Issue #27066.
926926
def badopener(fname, flags):
927927
return -2
928928
with self.assertRaises(ValueError) as cm:
929-
open('non-existent', 'r', opener=badopener)
929+
self.open('non-existent', 'r', opener=badopener)
930930
self.assertEqual(str(cm.exception), 'opener returned -2')
931931

932932
def test_opener_invalid_fd(self):
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
Raise :exc:`ValueError` in :func:`open` if *opener* returns a negative
2+
file-descriptor in the Python implementation of :mod:`io` to match the
3+
C implementation.

0 commit comments

Comments
 (0)
0