From 6c48ed7d62c6ca0eb24935b0e612f9e4a1a3b1bc Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Tue, 4 Mar 2025 12:16:07 +0100 Subject: gh-130736: Fix asyncio test_shutdown_default_executor_timeout() (#130800) Replace time.sleep() with threading.Event. --- Lib/test/test_asyncio/test_base_events.py | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/Lib/test/test_asyncio/test_base_events.py b/Lib/test/test_asyncio/test_base_events.py index 8cf1f68..7838d1f 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(): -- cgit v0.12