]> granicus.if.org Git - python/commitdiff
asyncio: Avoid ResourceWarning. Fix issue 19580 by Vajrasky Kok.
authorGuido van Rossum <guido@dropbox.com>
Thu, 14 Nov 2013 18:06:18 +0000 (10:06 -0800)
committerGuido van Rossum <guido@dropbox.com>
Thu, 14 Nov 2013 18:06:18 +0000 (10:06 -0800)
Lib/test/test_asyncio/test_base_events.py

index 3c4d52e6b9806546b3f6287d9513007d1d0d6d00..5178d54388555041d47f34b6aec9248149a58bbb 100644 (file)
@@ -458,16 +458,26 @@ class BaseEventLoopWithSelectorTests(unittest.TestCase):
         self.loop.sock_connect.return_value = ()
         self.loop._make_ssl_transport = unittest.mock.Mock()
 
+        class _SelectorTransportMock:
+            _sock = None
+
+            def close(self):
+                self._sock.close()
+
         def mock_make_ssl_transport(sock, protocol, sslcontext, waiter,
                                     **kwds):
             waiter.set_result(None)
+            transport = _SelectorTransportMock()
+            transport._sock = sock
+            return transport
 
         self.loop._make_ssl_transport.side_effect = mock_make_ssl_transport
         ANY = unittest.mock.ANY
         # First try the default server_hostname.
         self.loop._make_ssl_transport.reset_mock()
         coro = self.loop.create_connection(MyProto, 'python.org', 80, ssl=True)
-        self.loop.run_until_complete(coro)
+        transport, _ = self.loop.run_until_complete(coro)
+        transport.close()
         self.loop._make_ssl_transport.assert_called_with(
             ANY, ANY, ANY, ANY,
             server_side=False,
@@ -476,7 +486,8 @@ class BaseEventLoopWithSelectorTests(unittest.TestCase):
         self.loop._make_ssl_transport.reset_mock()
         coro = self.loop.create_connection(MyProto, 'python.org', 80, ssl=True,
                                            server_hostname='perl.com')
-        self.loop.run_until_complete(coro)
+        transport, _ = self.loop.run_until_complete(coro)
+        transport.close()
         self.loop._make_ssl_transport.assert_called_with(
             ANY, ANY, ANY, ANY,
             server_side=False,
@@ -485,7 +496,8 @@ class BaseEventLoopWithSelectorTests(unittest.TestCase):
         self.loop._make_ssl_transport.reset_mock()
         coro = self.loop.create_connection(MyProto, 'python.org', 80, ssl=True,
                                            server_hostname='')
-        self.loop.run_until_complete(coro)
+        transport, _ = self.loop.run_until_complete(coro)
+        transport.close()
         self.loop._make_ssl_transport.assert_called_with(ANY, ANY, ANY, ANY,
                                                          server_side=False,
                                                          server_hostname='')
@@ -505,8 +517,10 @@ class BaseEventLoopWithSelectorTests(unittest.TestCase):
         self.assertRaises(ValueError, self.loop.run_until_complete, coro)
         coro = self.loop.create_connection(MyProto, None, 80, ssl=True)
         self.assertRaises(ValueError, self.loop.run_until_complete, coro)
+        sock = socket.socket()
         coro = self.loop.create_connection(MyProto, None, None,
-                                           ssl=True, sock=socket.socket())
+                                           ssl=True, sock=sock)
+        self.addCleanup(sock.close)
         self.assertRaises(ValueError, self.loop.run_until_complete, coro)
 
     def test_create_server_empty_host(self):