Commit b79f28cc authored by Victor Stinner's avatar Victor Stinner

Issue #12175: FileIO.readall() now raises a ValueError instead of an IOError if

the file is closed.
parent 46f8264b
...@@ -2467,6 +2467,8 @@ class MiscIOTest(unittest.TestCase): ...@@ -2467,6 +2467,8 @@ class MiscIOTest(unittest.TestCase):
self.assertRaises(ValueError, f.read) self.assertRaises(ValueError, f.read)
if hasattr(f, "read1"): if hasattr(f, "read1"):
self.assertRaises(ValueError, f.read1, 1024) self.assertRaises(ValueError, f.read1, 1024)
if hasattr(f, "readall"):
self.assertRaises(ValueError, f.readall)
if hasattr(f, "readinto"): if hasattr(f, "readinto"):
self.assertRaises(ValueError, f.readinto, bytearray(1024)) self.assertRaises(ValueError, f.readinto, bytearray(1024))
self.assertRaises(ValueError, f.readline) self.assertRaises(ValueError, f.readline)
......
...@@ -75,6 +75,9 @@ Core and Builtins ...@@ -75,6 +75,9 @@ Core and Builtins
Library Library
------- -------
- Issue #12175: FileIO.readall() now raises a ValueError instead of an IOError
if the file is closed.
- Issue #12100: Don't reset incremental encoders of CJK codecs at each call to - Issue #12100: Don't reset incremental encoders of CJK codecs at each call to
their encode() method anymore, but continue to call the reset() method if the their encode() method anymore, but continue to call the reset() method if the
final argument is True. final argument is True.
......
...@@ -536,6 +536,8 @@ fileio_readall(fileio *self) ...@@ -536,6 +536,8 @@ fileio_readall(fileio *self)
Py_ssize_t total = 0; Py_ssize_t total = 0;
int n; int n;
if (self->fd < 0)
return err_closed();
if (!_PyVerify_fd(self->fd)) if (!_PyVerify_fd(self->fd))
return PyErr_SetFromErrno(PyExc_IOError); return PyErr_SetFromErrno(PyExc_IOError);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment