summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2015-01-15 14:23:32 +0100
committerVictor Stinner <victor.stinner@gmail.com>2015-01-15 14:23:32 +0100
commite70e384fcebeb63a4fc0e690e47b4d24437a5c95 (patch)
treec6df21a9782454335fb4d4d812a32b0d063b1997
parent180ea50b9a83de00713f8a4ecd1a91ed080968ac (diff)
downloadtrollius-e70e384fcebeb63a4fc0e690e47b4d24437a5c95.tar.gz
Close transports in tests
* Use test_utils.run_briefly() to execute pending calls to really close transports * sslproto: mock also _SSLPipe.shutdown(), it's need to close the transport * pipe test: the test doesn't close explicitly the PipeHandle, so ignore the warning instead * test_popen: use the context manager ("with p:") to explicitly close pipes
-rw-r--r--tests/test_selector_events.py2
-rw-r--r--tests/test_sslproto.py4
-rw-r--r--tests/test_subprocess.py1
-rw-r--r--tests/test_windows_utils.py11
4 files changed, 15 insertions, 3 deletions
diff --git a/tests/test_selector_events.py b/tests/test_selector_events.py
index f99d04d..ad86ada 100644
--- a/tests/test_selector_events.py
+++ b/tests/test_selector_events.py
@@ -1180,6 +1180,8 @@ class SelectorSslTransportTests(test_utils.TestCase):
self.sslsock.do_handshake.side_effect = exc
with test_utils.disable_logger():
transport._on_handshake(0)
+ transport.close()
+ test_utils.run_briefly(self.loop)
def test_pause_resume_reading(self):
tr = self._make_one()
diff --git a/tests/test_sslproto.py b/tests/test_sslproto.py
index 053fefe..812dedb 100644
--- a/tests/test_sslproto.py
+++ b/tests/test_sslproto.py
@@ -33,6 +33,7 @@ class SslProtoHandshakeTests(test_utils.TestCase):
waiter.cancel()
transport = mock.Mock()
sslpipe = mock.Mock()
+ sslpipe.shutdown.return_value = b''
sslpipe.do_handshake.side_effect = do_handshake
with mock.patch('asyncio.sslproto._SSLPipe', return_value=sslpipe):
ssl_proto.connection_made(transport)
@@ -40,6 +41,9 @@ class SslProtoHandshakeTests(test_utils.TestCase):
with test_utils.disable_logger():
self.loop.run_until_complete(handshake_fut)
+ # Close the transport
+ ssl_proto._app_transport.close()
+
if __name__ == '__main__':
unittest.main()
diff --git a/tests/test_subprocess.py b/tests/test_subprocess.py
index b2f1b95..a4c1f69 100644
--- a/tests/test_subprocess.py
+++ b/tests/test_subprocess.py
@@ -286,6 +286,7 @@ class SubprocessMixin:
# "Exception during subprocess creation, kill the subprocess"
with test_utils.disable_logger():
self.loop.run_until_complete(cancel_make_transport())
+ test_utils.run_briefly(self.loop)
if sys.platform != 'win32':
diff --git a/tests/test_windows_utils.py b/tests/test_windows_utils.py
index af5c453..d48b8bc 100644
--- a/tests/test_windows_utils.py
+++ b/tests/test_windows_utils.py
@@ -3,6 +3,7 @@
import socket
import sys
import unittest
+import warnings
from unittest import mock
if sys.platform != 'win32':
@@ -115,8 +116,10 @@ class PipeTests(unittest.TestCase):
self.assertEqual(p.handle, h)
# check garbage collection of p closes handle
- del p
- support.gc_collect()
+ with warnings.catch_warnings():
+ warnings.filterwarnings("ignore", "", ResourceWarning)
+ del p
+ support.gc_collect()
try:
_winapi.CloseHandle(h)
except OSError as e:
@@ -170,7 +173,9 @@ class PopenTests(unittest.TestCase):
self.assertTrue(msg.upper().rstrip().startswith(out))
self.assertTrue(b"stderr".startswith(err))
- p.wait()
+ # The context manager calls wait() and closes resources
+ with p:
+ pass
if __name__ == '__main__':