[Python-checkins] [3.7] bpo-33789: Backport test_asyncio fixes from master (GH-7478)
Victor Stinner
webhook-mailer at python.org
Thu Jun 7 10:19:03 EDT 2018
https://github.com/python/cpython/commit/3c417610ad318afecf471d59c53e5ae592740791
commit: 3c417610ad318afecf471d59c53e5ae592740791
branch: 3.7
author: Victor Stinner <vstinner at redhat.com>
committer: GitHub <noreply at github.com>
date: 2018-06-07T16:19:00+02:00
summary:
[3.7] bpo-33789: Backport test_asyncio fixes from master (GH-7478)
* bpo-33789: test_asyncio: Fix ResourceWarning (GH-7460)
* Close sockets and streams to fix ResourceWarning warnings
* Catch also OSError to hide a traceback on an expected handshake
error
(cherry picked from commit 0eba7c39132614a5730cda6b340e18dfb2d30d14)
* bpo-33789, test_asyncio: Hide PendingDeprecationWarning (GH-7461)
Hide PendingDeprecationWarning in test__register_task_3().
(cherry picked from commit 7ed61e9431ee2c191aeeeb26f86a71bb90ab99fd)
* bpo-32676, test_asyncio: Fix warning in test_error_in_call_soon() (GH-7462)
Fix "<CoroWrapper ...> was never yielded from" warning in
PyTask_PyFuture_Tests.test_error_in_call_soon() of
test_asyncio.test_tasks.
Close manually the coroutine on error.
(cherry picked from commit 9f04f0df6fdb27190690bda949d213893d14e807)
files:
M Lib/test/test_asyncio/functional.py
M Lib/test/test_asyncio/test_sslproto.py
M Lib/test/test_asyncio/test_tasks.py
diff --git a/Lib/test/test_asyncio/functional.py b/Lib/test/test_asyncio/functional.py
index fbec462c1dbf..386cfcdb9814 100644
--- a/Lib/test/test_asyncio/functional.py
+++ b/Lib/test/test_asyncio/functional.py
@@ -150,9 +150,14 @@ def start_tls(self, ssl_context, *,
server_hostname=server_hostname,
do_handshake_on_connect=False)
- ssl_sock.do_handshake()
+ try:
+ ssl_sock.do_handshake()
+ except:
+ ssl_sock.close()
+ raise
+ finally:
+ self.__sock.close()
- self.__sock.close()
self.__sock = ssl_sock
def __getattr__(self, name):
diff --git a/Lib/test/test_asyncio/test_sslproto.py b/Lib/test/test_asyncio/test_sslproto.py
index 2357130b5f97..6903fae5f311 100644
--- a/Lib/test/test_asyncio/test_sslproto.py
+++ b/Lib/test/test_asyncio/test_sslproto.py
@@ -600,6 +600,8 @@ def server(sock):
server_side=True)
except ssl.SSLError:
pass
+ except OSError:
+ pass
finally:
sock.close()
@@ -636,6 +638,7 @@ def server(sock):
except ssl.SSLError:
pass
finally:
+ orig_sock.close()
sock.close()
async def client(addr):
@@ -649,6 +652,8 @@ def server(sock):
writer.write(b'B')
with self.assertRaises(ssl.SSLError):
await reader.readline()
+
+ writer.close()
return 'OK'
with self.tcp_server(server,
diff --git a/Lib/test/test_asyncio/test_tasks.py b/Lib/test/test_asyncio/test_tasks.py
index d95c98f0a617..67df3c0f48fd 100644
--- a/Lib/test/test_asyncio/test_tasks.py
+++ b/Lib/test/test_asyncio/test_tasks.py
@@ -2178,7 +2178,11 @@ def coro():
self.assertFalse(m_log.error.called)
with self.assertRaises(ValueError):
- self.new_task(self.loop, coro())
+ gen = coro()
+ try:
+ self.new_task(self.loop, gen)
+ finally:
+ gen.close()
self.assertTrue(m_log.error.called)
message = m_log.error.call_args[0][0]
@@ -2609,7 +2613,8 @@ def done(self):
self.assertEqual(asyncio.all_tasks(loop), set())
self._register_task(task)
self.assertEqual(asyncio.all_tasks(loop), set())
- self.assertEqual(asyncio.Task.all_tasks(loop), {task})
+ with self.assertWarns(PendingDeprecationWarning):
+ self.assertEqual(asyncio.Task.all_tasks(loop), {task})
self._unregister_task(task)
def test__enter_task(self):
More information about the Python-checkins
mailing list