diff options
-rw-r--r-- | Lib/asyncio/streams.py | 3 | ||||
-rw-r--r-- | Lib/test/test_asyncio/test_streams.py | 4 |
2 files changed, 5 insertions, 2 deletions
diff --git a/Lib/asyncio/streams.py b/Lib/asyncio/streams.py index 6b5e96a..9097e38 100644 --- a/Lib/asyncio/streams.py +++ b/Lib/asyncio/streams.py @@ -494,6 +494,9 @@ class StreamReader: @coroutine def readexactly(self, n): + if n < 0: + raise ValueError('readexactly size can not be less than zero') + if self._exception is not None: raise self._exception diff --git a/Lib/test/test_asyncio/test_streams.py b/Lib/test/test_asyncio/test_streams.py index 6f657ad..b716a50 100644 --- a/Lib/test/test_asyncio/test_streams.py +++ b/Lib/test/test_asyncio/test_streams.py @@ -351,8 +351,8 @@ class StreamReaderTests(test_utils.TestCase): self.assertEqual(b'', data) self.assertEqual(self.DATA, stream._buffer) - data = self.loop.run_until_complete(stream.readexactly(-1)) - self.assertEqual(b'', data) + with self.assertRaisesRegexp(ValueError, 'less than zero'): + self.loop.run_until_complete(stream.readexactly(-1)) self.assertEqual(self.DATA, stream._buffer) def test_readexactly(self): |