[Python-checkins] bpo-39010: Improve test shutdown (GH-22066) (#22083)
Miss Islington (bot)
webhook-mailer at python.org
Thu Sep 3 16:54:41 EDT 2020
https://github.com/python/cpython/commit/40e2444c364eede59f193979df5a02ed958f56e9
commit: 40e2444c364eede59f193979df5a02ed958f56e9
branch: 3.8
author: Miss Islington (bot) <31488909+miss-islington at users.noreply.github.com>
committer: GitHub <noreply at github.com>
date: 2020-09-03T13:54:36-07:00
summary:
bpo-39010: Improve test shutdown (GH-22066) (#22083)
Simply closing the event loop isn't enough to avoid warnings. If we
don't also shut down the event loop's default executor, it sometimes
logs a "dangling thread" warning.
Follow-up to GH-22017
(cherry picked from commit be435ae2b064dc64f04475bec632862e1dbf605f)
Co-authored-by: Ben Darnell <ben at bendarnell.com>
Co-authored-by: Ben Darnell <ben at bendarnell.com>
files:
M Lib/test/test_asyncio/test_windows_events.py
diff --git a/Lib/test/test_asyncio/test_windows_events.py b/Lib/test/test_asyncio/test_windows_events.py
index 33388a87d48f3..f276cd205a2f8 100644
--- a/Lib/test/test_asyncio/test_windows_events.py
+++ b/Lib/test/test_asyncio/test_windows_events.py
@@ -225,10 +225,18 @@ def test_read_self_pipe_restart(self):
self.loop.run_forever()
self.loop.stop()
self.loop.run_forever()
- # If we don't wait for f to complete here, we may get another
- # warning logged about a thread that didn't shut down cleanly.
+
+ # Shut everything down cleanly. This is an important part of the
+ # test - in issue 39010, the error occurred during loop.close(),
+ # so we want to close the loop during the test instead of leaving
+ # it for tearDown.
+ #
+ # First wait for f to complete to avoid a "future's result was never
+ # retrieved" error.
self.loop.run_until_complete(f)
- self.loop.close()
+ # Now shut down the loop itself (self.close_loop also shuts down the
+ # loop's default executor).
+ self.close_loop(self.loop)
self.assertFalse(self.loop.call_exception_handler.called)
More information about the Python-checkins
mailing list