]> granicus.if.org Git - python/commitdiff
asyncio: Move loop attribute to _FlowControlMixin
authorVictor Stinner <victor.stinner@gmail.com>
Wed, 5 Nov 2014 14:27:41 +0000 (15:27 +0100)
committerVictor Stinner <victor.stinner@gmail.com>
Wed, 5 Nov 2014 14:27:41 +0000 (15:27 +0100)
Move the _loop attribute from the constructor of _SelectorTransport,
_ProactorBasePipeTransport and _UnixWritePipeTransport classes to the
constructor of the _FlowControlMixin class.

Add also an assertion to explicit that the parent class must ensure that the
loop is defined (not None)

Lib/asyncio/proactor_events.py
Lib/asyncio/selector_events.py
Lib/asyncio/transports.py
Lib/asyncio/unix_events.py
Lib/test/test_asyncio/test_transports.py

index 7132300a564adc3bd8e98309a21aa2cf5f23dc5c..a1e2fef6d17d5ada662aea9a0f0de3e25393476b 100644 (file)
@@ -21,9 +21,8 @@ class _ProactorBasePipeTransport(transports._FlowControlMixin,
 
     def __init__(self, loop, sock, protocol, waiter=None,
                  extra=None, server=None):
-        super().__init__(extra)
+        super().__init__(extra, loop)
         self._set_extra(sock)
-        self._loop = loop
         self._sock = sock
         self._protocol = protocol
         self._server = server
index c5debf8f02bf1e0615ec4f882fd7882e1ebf4e1d..116d380157dc58a9864ad66aa0569492cde0b7fb 100644 (file)
@@ -447,7 +447,7 @@ class _SelectorTransport(transports._FlowControlMixin,
     _buffer_factory = bytearray  # Constructs initial value for self._buffer.
 
     def __init__(self, loop, sock, protocol, extra, server=None):
-        super().__init__(extra)
+        super().__init__(extra, loop)
         self._extra['socket'] = sock
         self._extra['sockname'] = sock.getsockname()
         if 'peername' not in self._extra:
@@ -455,7 +455,6 @@ class _SelectorTransport(transports._FlowControlMixin,
                 self._extra['peername'] = sock.getpeername()
             except socket.error:
                 self._extra['peername'] = None
-        self._loop = loop
         self._sock = sock
         self._sock_fd = sock.fileno()
         self._protocol = protocol
index 3caf853f9ebc49ffdb7182c77c2dcbebd8de3b9c..22df3c7aede77de1b868e1e0334cc57e349c6bcb 100644 (file)
@@ -238,8 +238,10 @@ class _FlowControlMixin(Transport):
     resume_writing() may be called.
     """
 
-    def __init__(self, extra=None):
+    def __init__(self, extra=None, loop=None):
         super().__init__(extra)
+        assert loop is not None
+        self._loop = loop
         self._protocol_paused = False
         self._set_write_buffer_limits()
 
index 93c8c1c8197d95e45050a03b15a0705ec087f1f3..b16f946ae4bc84b4b1afcebe8399cf4539fd2850 100644 (file)
@@ -369,9 +369,8 @@ class _UnixWritePipeTransport(transports._FlowControlMixin,
                               transports.WriteTransport):
 
     def __init__(self, loop, pipe, protocol, waiter=None, extra=None):
-        super().__init__(extra)
+        super().__init__(extra, loop)
         self._extra['pipe'] = pipe
-        self._loop = loop
         self._pipe = pipe
         self._fileno = pipe.fileno()
         mode = os.fstat(self._fileno).st_mode
index 5be1b7bf895309b5e7952a399ad823d9e3565ffe..3b6e3d67075b57b3bb65d36d1e49a728a09679e9 100644 (file)
@@ -69,7 +69,8 @@ class TransportTests(unittest.TestCase):
             def get_write_buffer_size(self):
                 return 512
 
-        transport = MyTransport()
+        loop = mock.Mock()
+        transport = MyTransport(loop=loop)
         transport._protocol = mock.Mock()
 
         self.assertFalse(transport._protocol_paused)