[Python-checkins] cpython (3.4): asyncio: WriteTransport.set_write_buffer_size to call _maybe_pause_protocol
larry.hastings
python-checkins at python.org
Mon Mar 17 07:32:16 CET 2014
http://hg.python.org/cpython/rev/b83fbd8745d5
changeset: 89737:b83fbd8745d5
branch: 3.4
user: Yury Selivanov <yselivanov at sprymix.com>
date: Wed Feb 19 11:10:52 2014 -0500
summary:
asyncio: WriteTransport.set_write_buffer_size to call _maybe_pause_protocol
files:
Lib/asyncio/transports.py | 8 +++-
Lib/test/test_asyncio/test_transports.py | 23 ++++++++++++
2 files changed, 29 insertions(+), 2 deletions(-)
diff --git a/Lib/asyncio/transports.py b/Lib/asyncio/transports.py
--- a/Lib/asyncio/transports.py
+++ b/Lib/asyncio/transports.py
@@ -241,7 +241,7 @@
def __init__(self, extra=None):
super().__init__(extra)
self._protocol_paused = False
- self.set_write_buffer_limits()
+ self._set_write_buffer_limits()
def _maybe_pause_protocol(self):
size = self.get_write_buffer_size()
@@ -273,7 +273,7 @@
'protocol': self._protocol,
})
- def set_write_buffer_limits(self, high=None, low=None):
+ def _set_write_buffer_limits(self, high=None, low=None):
if high is None:
if low is None:
high = 64*1024
@@ -287,5 +287,9 @@
self._high_water = high
self._low_water = low
+ def set_write_buffer_limits(self, high=None, low=None):
+ self._set_write_buffer_limits(high=high, low=low)
+ self._maybe_pause_protocol()
+
def get_write_buffer_size(self):
raise NotImplementedError
diff --git a/Lib/test/test_asyncio/test_transports.py b/Lib/test/test_asyncio/test_transports.py
--- a/Lib/test/test_asyncio/test_transports.py
+++ b/Lib/test/test_asyncio/test_transports.py
@@ -4,6 +4,7 @@
import unittest.mock
import asyncio
+from asyncio import transports
class TransportTests(unittest.TestCase):
@@ -60,6 +61,28 @@
self.assertRaises(NotImplementedError, transport.terminate)
self.assertRaises(NotImplementedError, transport.kill)
+ def test_flowcontrol_mixin_set_write_limits(self):
+
+ class MyTransport(transports._FlowControlMixin,
+ transports.Transport):
+
+ def get_write_buffer_size(self):
+ return 512
+
+ transport = MyTransport()
+ transport._protocol = unittest.mock.Mock()
+
+ self.assertFalse(transport._protocol_paused)
+
+ with self.assertRaisesRegex(ValueError, 'high.*must be >= low'):
+ transport.set_write_buffer_limits(high=0, low=1)
+
+ transport.set_write_buffer_limits(high=1024, low=128)
+ self.assertFalse(transport._protocol_paused)
+
+ transport.set_write_buffer_limits(high=256, low=128)
+ self.assertTrue(transport._protocol_paused)
+
if __name__ == '__main__':
unittest.main()
--
Repository URL: http://hg.python.org/cpython
More information about the Python-checkins
mailing list