Commit d94c1b92 authored by Andrew Svetlov's avatar Andrew Svetlov

Fix StreamReader.__repr__

parent 85976b14
...@@ -324,7 +324,7 @@ class StreamReader: ...@@ -324,7 +324,7 @@ class StreamReader:
def __repr__(self): def __repr__(self):
info = ['StreamReader'] info = ['StreamReader']
if self._buffer: if self._buffer:
info.append('%d bytes' % len(info)) info.append('%d bytes' % len(self._buffer))
if self._eof: if self._eof:
info.append('eof') info.append('eof')
if self._limit != _DEFAULT_LIMIT: if self._limit != _DEFAULT_LIMIT:
......
...@@ -632,6 +632,48 @@ os.close(fd) ...@@ -632,6 +632,48 @@ os.close(fd)
protocol = asyncio.StreamReaderProtocol(reader) protocol = asyncio.StreamReaderProtocol(reader)
self.assertIs(protocol._loop, self.loop) self.assertIs(protocol._loop, self.loop)
def test___repr__(self):
stream = asyncio.StreamReader(loop=self.loop)
self.assertEqual("<StreamReader>", repr(stream))
def test___repr__nondefault_limit(self):
stream = asyncio.StreamReader(loop=self.loop, limit=123)
self.assertEqual("<StreamReader l=123>", repr(stream))
def test___repr__eof(self):
stream = asyncio.StreamReader(loop=self.loop)
stream.feed_eof()
self.assertEqual("<StreamReader eof>", repr(stream))
def test___repr__data(self):
stream = asyncio.StreamReader(loop=self.loop)
stream.feed_data(b'data')
self.assertEqual("<StreamReader 4 bytes>", repr(stream))
def test___repr__exception(self):
stream = asyncio.StreamReader(loop=self.loop)
exc = RuntimeError()
stream.set_exception(exc)
self.assertEqual("<StreamReader e=RuntimeError()>", repr(stream))
def test___repr__waiter(self):
stream = asyncio.StreamReader(loop=self.loop)
stream._waiter = asyncio.Future(loop=self.loop)
self.assertRegex(
repr(stream),
"<StreamReader w=<Future pending[\S ]*>>")
stream._waiter.set_result(None)
self.loop.run_until_complete(stream._waiter)
stream._waiter = None
self.assertEqual("<StreamReader>", repr(stream))
def test___repr__transport(self):
stream = asyncio.StreamReader(loop=self.loop)
stream._transport = mock.Mock()
stream._transport.__repr__ = mock.Mock()
stream._transport.__repr__.return_value = "<Transport>"
self.assertEqual("<StreamReader t=<Transport>>", repr(stream))
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
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