summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGuido van Rossum <guido@dropbox.com>2013-10-08 15:25:54 -0700
committerGuido van Rossum <guido@dropbox.com>2013-10-08 15:25:54 -0700
commit65a58c979821e6f3534dea9227a7c60892687a4e (patch)
tree7c504eb06840ce652f782b128b22fac77b468c9e
parentbbae286480ac9294b096b09bb40d268f4e822de3 (diff)
downloadtrollius-git-65a58c979821e6f3534dea9227a7c60892687a4e.tar.gz
Change buffers to queues.
-rw-r--r--tests/selector_events_test.py59
-rw-r--r--tulip/selector_events.py5
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)