diff options
| author | Guido van Rossum <guido@dropbox.com> | 2013-10-08 15:25:54 -0700 |
|---|---|---|
| committer | Guido van Rossum <guido@dropbox.com> | 2013-10-08 15:25:54 -0700 |
| commit | 65a58c979821e6f3534dea9227a7c60892687a4e (patch) | |
| tree | 7c504eb06840ce652f782b128b22fac77b468c9e | |
| parent | bbae286480ac9294b096b09bb40d268f4e822de3 (diff) | |
| download | trollius-git-65a58c979821e6f3534dea9227a7c60892687a4e.tar.gz | |
Change buffers to queues.
| -rw-r--r-- | tests/selector_events_test.py | 59 | ||||
| -rw-r--r-- | tulip/selector_events.py | 5 |
2 files changed, 32 insertions, 32 deletions
diff --git a/tests/selector_events_test.py b/tests/selector_events_test.py index f810f31..be62436 100644 --- a/tests/selector_events_test.py +++ b/tests/selector_events_test.py @@ -1,5 +1,6 @@ """Tests for selector_events.py""" +import collections import errno import gc import pprint @@ -610,13 +611,13 @@ class SelectorTransportTests(unittest.TestCase): def test_force_close(self): tr = _SelectorTransport(self.loop, self.sock, self.protocol, None) - tr._buffer = [b'1'] + tr._buffer.append(b'1') self.loop.add_reader(7, unittest.mock.sentinel) self.loop.add_writer(7, unittest.mock.sentinel) tr._force_close(None) self.assertTrue(tr._closing) - self.assertEqual(tr._buffer, []) + self.assertEqual(tr._buffer, collections.deque()) self.assertFalse(self.loop.readers) self.assertFalse(self.loop.writers) @@ -765,7 +766,7 @@ class SelectorSocketTransportTests(unittest.TestCase): transport._buffer.append(b'data') transport.write(b'') self.assertFalse(self.sock.send.called) - self.assertEqual([b'data'], transport._buffer) + self.assertEqual(collections.deque([b'data']), transport._buffer) def test_write_buffer(self): transport = _SelectorSocketTransport( @@ -773,7 +774,7 @@ class SelectorSocketTransportTests(unittest.TestCase): transport._buffer.append(b'data1') transport.write(b'data2') self.assertFalse(self.sock.send.called) - self.assertEqual([b'data1', b'data2'], transport._buffer) + self.assertEqual(collections.deque([b'data1', b'data2']), transport._buffer) def test_write_partial(self): data = b'data' @@ -784,7 +785,7 @@ class SelectorSocketTransportTests(unittest.TestCase): transport.write(data) self.loop.assert_writer(7, transport._write_ready) - self.assertEqual([b'ta'], transport._buffer) + self.assertEqual(collections.deque([b'ta']), transport._buffer) def test_write_partial_none(self): data = b'data' @@ -796,7 +797,7 @@ class SelectorSocketTransportTests(unittest.TestCase): transport.write(data) self.loop.assert_writer(7, transport._write_ready) - self.assertEqual([b'data'], transport._buffer) + self.assertEqual(collections.deque([b'data']), transport._buffer) def test_write_tryagain(self): self.sock.send.side_effect = BlockingIOError @@ -807,7 +808,7 @@ class SelectorSocketTransportTests(unittest.TestCase): transport.write(data) self.loop.assert_writer(7, transport._write_ready) - self.assertEqual([b'data'], transport._buffer) + self.assertEqual(collections.deque([b'data']), transport._buffer) @unittest.mock.patch('tulip.selector_events.tulip_log') def test_write_exception(self, m_log): @@ -887,7 +888,7 @@ class SelectorSocketTransportTests(unittest.TestCase): self.loop.add_writer(7, transport._write_ready) transport._write_ready() self.loop.assert_writer(7, transport._write_ready) - self.assertEqual([b'ta'], transport._buffer) + self.assertEqual(collections.deque([b'ta']), transport._buffer) def test_write_ready_partial_none(self): data = b'data' @@ -899,19 +900,19 @@ class SelectorSocketTransportTests(unittest.TestCase): self.loop.add_writer(7, transport._write_ready) transport._write_ready() self.loop.assert_writer(7, transport._write_ready) - self.assertEqual([b'data'], transport._buffer) + self.assertEqual(collections.deque([b'data']), transport._buffer) def test_write_ready_tryagain(self): self.sock.send.side_effect = BlockingIOError transport = _SelectorSocketTransport( self.loop, self.sock, self.protocol) - transport._buffer = [b'data1', b'data2'] + transport._buffer = collections.deque([b'data1', b'data2']) self.loop.add_writer(7, transport._write_ready) transport._write_ready() self.loop.assert_writer(7, transport._write_ready) - self.assertEqual([b'data1data2'], transport._buffer) + self.assertEqual(collections.deque([b'data1data2']), transport._buffer) def test_write_ready_exception(self): err = self.sock.send.side_effect = OSError() @@ -951,7 +952,7 @@ class SelectorSocketTransportTests(unittest.TestCase): self.sock.send.side_effect = BlockingIOError tr.write(b'data') tr.write_eof() - self.assertEqual(tr._buffer, [b'data']) + self.assertEqual(tr._buffer, collections.deque([b'data'])) self.assertTrue(tr._eof) self.assertFalse(self.sock.shutdown.called) self.sock.send.side_effect = lambda _: 4 @@ -1045,7 +1046,7 @@ class SelectorSslTransportTests(unittest.TestCase): transport = self._make_one() transport._buffer.append(b'data') transport.write(b'') - self.assertEqual([b'data'], transport._buffer) + self.assertEqual(collections.deque([b'data']), transport._buffer) def test_write_str(self): transport = self._make_one() @@ -1063,7 +1064,7 @@ class SelectorSslTransportTests(unittest.TestCase): transport = self._make_one() transport._conn_lost = 1 transport.write(b'data') - self.assertEqual(transport._buffer, []) + self.assertEqual(transport._buffer, collections.deque()) transport.write(b'data') transport.write(b'data') transport.write(b'data') @@ -1122,34 +1123,34 @@ class SelectorSslTransportTests(unittest.TestCase): self.sslsock.recv.side_effect = ssl.SSLWantReadError self.sslsock.send.return_value = 4 transport = self._make_one() - transport._buffer = [b'data'] + transport._buffer = collections.deque([b'data']) transport._on_ready() - self.assertEqual([], transport._buffer) + self.assertEqual(collections.deque(), transport._buffer) self.assertTrue(self.sslsock.send.called) def test_on_ready_send_none(self): self.sslsock.recv.side_effect = ssl.SSLWantReadError self.sslsock.send.return_value = 0 transport = self._make_one() - transport._buffer = [b'data1', b'data2'] + transport._buffer = collections.deque([b'data1', b'data2']) transport._on_ready() self.assertTrue(self.sslsock.send.called) - self.assertEqual([b'data1data2'], transport._buffer) + self.assertEqual(collections.deque([b'data1data2']), transport._buffer) def test_on_ready_send_partial(self): self.sslsock.recv.side_effect = ssl.SSLWantReadError self.sslsock.send.return_value = 2 transport = self._make_one() - transport._buffer = [b'data1', b'data2'] + transport._buffer = collections.deque([b'data1', b'data2']) transport._on_ready() self.assertTrue(self.sslsock.send.called) - self.assertEqual([b'ta1data2'], transport._buffer) + self.assertEqual(collections.deque([b'ta1data2']), transport._buffer) def test_on_ready_send_closing_partial(self): self.sslsock.recv.side_effect = ssl.SSLWantReadError self.sslsock.send.return_value = 2 transport = self._make_one() - transport._buffer = [b'data1', b'data2'] + transport._buffer = collections.deque([b'data1', b'data2']) transport._on_ready() self.assertTrue(self.sslsock.send.called) self.assertFalse(self.sslsock.close.called) @@ -1159,7 +1160,7 @@ class SelectorSslTransportTests(unittest.TestCase): self.sslsock.send.return_value = 4 transport = self._make_one() transport.close() - transport._buffer = [b'data'] + transport._buffer = collections.deque([b'data']) transport._on_ready() self.assertFalse(self.loop.writers) self.protocol.connection_lost.assert_called_with(None) @@ -1169,7 +1170,7 @@ class SelectorSslTransportTests(unittest.TestCase): self.sslsock.send.return_value = 4 transport = self._make_one() transport.close() - transport._buffer = [] + transport._buffer = collections.deque() transport._on_ready() self.assertFalse(self.loop.writers) self.protocol.connection_lost.assert_called_with(None) @@ -1178,31 +1179,31 @@ class SelectorSslTransportTests(unittest.TestCase): self.sslsock.recv.side_effect = ssl.SSLWantReadError transport = self._make_one() - transport._buffer = [b'data'] + transport._buffer = collections.deque([b'data']) self.sslsock.send.side_effect = ssl.SSLWantReadError transport._on_ready() self.assertTrue(self.sslsock.send.called) - self.assertEqual([b'data'], transport._buffer) + self.assertEqual(collections.deque([b'data']), transport._buffer) self.sslsock.send.side_effect = ssl.SSLWantWriteError transport._on_ready() - self.assertEqual([b'data'], transport._buffer) + self.assertEqual(collections.deque([b'data']), transport._buffer) self.sslsock.send.side_effect = BlockingIOError() transport._on_ready() - self.assertEqual([b'data'], transport._buffer) + self.assertEqual(collections.deque([b'data']), transport._buffer) def test_on_ready_send_exc(self): self.sslsock.recv.side_effect = ssl.SSLWantReadError err = self.sslsock.send.side_effect = OSError() transport = self._make_one() - transport._buffer = [b'data'] + transport._buffer = collections.deque([b'data']) transport._fatal_error = unittest.mock.Mock() transport._on_ready() transport._fatal_error.assert_called_with(err) - self.assertEqual([], transport._buffer) + self.assertEqual(collections.deque(), transport._buffer) def test_write_eof(self): tr = self._make_one() diff --git a/tulip/selector_events.py b/tulip/selector_events.py index 92330e8..6f6a271 100644 --- a/tulip/selector_events.py +++ b/tulip/selector_events.py @@ -329,7 +329,7 @@ class _SelectorTransport(transports.Transport): self._sock = sock self._sock_fd = sock.fileno() self._protocol = protocol - self._buffer = [] + self._buffer = collections.deque() self._conn_lost = 0 self._closing = False # Set when close() called. @@ -579,7 +579,7 @@ class _SelectorSslTransport(_SelectorTransport): # Now try writing, if there's anything to write. if self._buffer: data = b''.join(self._buffer) - self._buffer = [] + self._buffer.clear() try: n = self._sock.send(data) except (BlockingIOError, InterruptedError, @@ -630,7 +630,6 @@ class _SelectorDatagramTransport(_SelectorTransport): super().__init__(loop, sock, protocol, extra) self._address = address - self._buffer = collections.deque() self._loop.add_reader(self._sock_fd, self._read_ready) self._loop.call_soon(self._protocol.connection_made, self) |
