[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月07日T16: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

AltStyle によって変換されたページ (->オリジナル) /