summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/asyncio/streams.py3
-rw-r--r--Lib/test/test_asyncio/test_streams.py4
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):