Commit 9fef5244 authored by Victor Stinner's avatar Victor Stinner

Merge 3.4 (asyncio)

parents d021c1d3 ab8848bc
...@@ -177,7 +177,11 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop): ...@@ -177,7 +177,11 @@ class _UnixSelectorEventLoop(selector_events.BaseSelectorEventLoop):
transp = _UnixSubprocessTransport(self, protocol, args, shell, transp = _UnixSubprocessTransport(self, protocol, args, shell,
stdin, stdout, stderr, bufsize, stdin, stdout, stderr, bufsize,
extra=extra, **kwargs) extra=extra, **kwargs)
try:
yield from transp._post_init() yield from transp._post_init()
except:
transp.close()
raise
watcher.add_child_handler(transp.get_pid(), watcher.add_child_handler(transp.get_pid(),
self._child_watcher_callback, transp) self._child_watcher_callback, transp)
......
...@@ -272,7 +272,12 @@ class ProactorEventLoop(proactor_events.BaseProactorEventLoop): ...@@ -272,7 +272,12 @@ class ProactorEventLoop(proactor_events.BaseProactorEventLoop):
transp = _WindowsSubprocessTransport(self, protocol, args, shell, transp = _WindowsSubprocessTransport(self, protocol, args, shell,
stdin, stdout, stderr, bufsize, stdin, stdout, stderr, bufsize,
extra=extra, **kwargs) extra=extra, **kwargs)
try:
yield from transp._post_init() yield from transp._post_init()
except:
transp.close()
raise
return transp return transp
......
...@@ -1180,6 +1180,8 @@ class SelectorSslTransportTests(test_utils.TestCase): ...@@ -1180,6 +1180,8 @@ class SelectorSslTransportTests(test_utils.TestCase):
self.sslsock.do_handshake.side_effect = exc self.sslsock.do_handshake.side_effect = exc
with test_utils.disable_logger(): with test_utils.disable_logger():
transport._on_handshake(0) transport._on_handshake(0)
transport.close()
test_utils.run_briefly(self.loop)
def test_pause_resume_reading(self): def test_pause_resume_reading(self):
tr = self._make_one() tr = self._make_one()
......
...@@ -33,6 +33,7 @@ class SslProtoHandshakeTests(test_utils.TestCase): ...@@ -33,6 +33,7 @@ class SslProtoHandshakeTests(test_utils.TestCase):
waiter.cancel() waiter.cancel()
transport = mock.Mock() transport = mock.Mock()
sslpipe = mock.Mock() sslpipe = mock.Mock()
sslpipe.shutdown.return_value = b''
sslpipe.do_handshake.side_effect = do_handshake sslpipe.do_handshake.side_effect = do_handshake
with mock.patch('asyncio.sslproto._SSLPipe', return_value=sslpipe): with mock.patch('asyncio.sslproto._SSLPipe', return_value=sslpipe):
ssl_proto.connection_made(transport) ssl_proto.connection_made(transport)
...@@ -40,6 +41,9 @@ class SslProtoHandshakeTests(test_utils.TestCase): ...@@ -40,6 +41,9 @@ class SslProtoHandshakeTests(test_utils.TestCase):
with test_utils.disable_logger(): with test_utils.disable_logger():
self.loop.run_until_complete(handshake_fut) self.loop.run_until_complete(handshake_fut)
# Close the transport
ssl_proto._app_transport.close()
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
...@@ -286,6 +286,7 @@ class SubprocessMixin: ...@@ -286,6 +286,7 @@ class SubprocessMixin:
# "Exception during subprocess creation, kill the subprocess" # "Exception during subprocess creation, kill the subprocess"
with test_utils.disable_logger(): with test_utils.disable_logger():
self.loop.run_until_complete(cancel_make_transport()) self.loop.run_until_complete(cancel_make_transport())
test_utils.run_briefly(self.loop)
if sys.platform != 'win32': if sys.platform != 'win32':
......
...@@ -3,6 +3,7 @@ ...@@ -3,6 +3,7 @@
import socket import socket
import sys import sys
import unittest import unittest
import warnings
from unittest import mock from unittest import mock
if sys.platform != 'win32': if sys.platform != 'win32':
...@@ -115,6 +116,8 @@ class PipeTests(unittest.TestCase): ...@@ -115,6 +116,8 @@ class PipeTests(unittest.TestCase):
self.assertEqual(p.handle, h) self.assertEqual(p.handle, h)
# check garbage collection of p closes handle # check garbage collection of p closes handle
with warnings.catch_warnings():
warnings.filterwarnings("ignore", "", ResourceWarning)
del p del p
support.gc_collect() support.gc_collect()
try: try:
...@@ -170,7 +173,9 @@ class PopenTests(unittest.TestCase): ...@@ -170,7 +173,9 @@ class PopenTests(unittest.TestCase):
self.assertTrue(msg.upper().rstrip().startswith(out)) self.assertTrue(msg.upper().rstrip().startswith(out))
self.assertTrue(b"stderr".startswith(err)) self.assertTrue(b"stderr".startswith(err))
p.wait() # The context manager calls wait() and closes resources
with p:
pass
if __name__ == '__main__': if __name__ == '__main__':
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment