readline() args must be an int #3521
This commit is contained in:
parent
34596a90c8
commit
b01138a66e
|
@ -460,6 +460,8 @@ class IOBase(metaclass=abc.ABCMeta):
|
|||
return 1
|
||||
if limit is None:
|
||||
limit = -1
|
||||
elif not isinstance(limit, int):
|
||||
raise TypeError("limit must be an integer")
|
||||
res = bytearray()
|
||||
while limit < 0 or len(res) < limit:
|
||||
b = self.read(nreadahead())
|
||||
|
@ -1741,6 +1743,8 @@ class TextIOWrapper(TextIOBase):
|
|||
raise ValueError("read from closed file")
|
||||
if limit is None:
|
||||
limit = -1
|
||||
elif not isinstance(limit, int):
|
||||
raise TypeError("limit must be an integer")
|
||||
|
||||
# Grab all the decoded text (we will rewind any extra bits later).
|
||||
line = self._get_decoded_chars()
|
||||
|
|
|
@ -319,7 +319,7 @@ class IOTest(unittest.TestCase):
|
|||
f.close()
|
||||
|
||||
def test_readline(self):
|
||||
f = io.open(support.TESTFN, "wb")
|
||||
f = self.open(support.TESTFN, "wb")
|
||||
f.write(b"abc\ndef\nxyzzy\nfoo\x00bar\nanother line")
|
||||
f.close()
|
||||
f = self.open(support.TESTFN, "rb")
|
||||
|
@ -329,7 +329,10 @@ class IOTest(unittest.TestCase):
|
|||
self.assertEqual(f.readline(4), b"zzy\n")
|
||||
self.assertEqual(f.readline(), b"foo\x00bar\n")
|
||||
self.assertEqual(f.readline(), b"another line")
|
||||
self.assertRaises(TypeError, f.readline, 5.3)
|
||||
f.close()
|
||||
f = self.open(support.TESTFN, "r")
|
||||
self.assertRaises(TypeError, f.readline, 5.3)
|
||||
|
||||
def test_raw_bytes_io(self):
|
||||
f = self.BytesIO()
|
||||
|
|
Loading…
Reference in New Issue