From: Victor Stinner Date: Tue, 4 Mar 2025 11:16:07 +0000 (+0100) Subject: gh-130736: Fix asyncio test_shutdown_default_executor_timeout() (#130800) X-Git-Tag: v3.14.0a6~172 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=6c48ed7d62c6ca0eb24935b0e612f9e4a1a3b1bc;p=thirdparty%2FPython%2Fcpython.git gh-130736: Fix asyncio test_shutdown_default_executor_timeout() (#130800) Replace time.sleep() with threading.Event. --- diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py index 8cf1f6891faf..7838d1fccb88 100644 --- a/Lib/test/test_asyncio/test_base_events.py +++ b/Lib/test/test_asyncio/test_base_events.py @@ -233,20 +233,25 @@ class BaseEventLoopTests(test_utils.TestCase): self.assertIsNone(self.loop._default_executor) def test_shutdown_default_executor_timeout(self): + event = threading.Event() + class DummyExecutor(concurrent.futures.ThreadPoolExecutor): def shutdown(self, wait=True, *, cancel_futures=False): if wait: - time.sleep(0.1) + event.wait() self.loop._process_events = mock.Mock() self.loop._write_to_self = mock.Mock() executor = DummyExecutor() self.loop.set_default_executor(executor) - with self.assertWarnsRegex(RuntimeWarning, - "The executor did not finishing joining"): - self.loop.run_until_complete( - self.loop.shutdown_default_executor(timeout=0.01)) + try: + with self.assertWarnsRegex(RuntimeWarning, + "The executor did not finishing joining"): + self.loop.run_until_complete( + self.loop.shutdown_default_executor(timeout=0.01)) + finally: + event.set() def test_call_soon(self): def cb():