From 4d825b45a07353d180754642b759ff10eaa204f2 Mon Sep 17 00:00:00 2001 From: Victor Stinner Date: Fri, 19 Dec 2014 17:10:44 +0100 Subject: [PATCH] asyncio: IocpProactor.wait_for_handle() test now also checks the result of the future --- Lib/asyncio/windows_events.py | 5 +++++ Lib/test/test_asyncio/test_windows_events.py | 8 ++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Lib/asyncio/windows_events.py b/Lib/asyncio/windows_events.py index 0773d061f79..d7feb1aec83 100644 --- a/Lib/asyncio/windows_events.py +++ b/Lib/asyncio/windows_events.py @@ -427,6 +427,11 @@ class IocpProactor: return self._register(ov, None, finish_connect_pipe, wait_for_post=True) def wait_for_handle(self, handle, timeout=None): + """Wait for a handle. + + Return a Future object. The result of the future is True if the wait + completed, or False if the wait did not complete (on timeout). + """ if timeout is None: ms = _winapi.INFINITE else: diff --git a/Lib/test/test_asyncio/test_windows_events.py b/Lib/test/test_asyncio/test_windows_events.py index b4d9398fb36..9b264a64b0a 100644 --- a/Lib/test/test_asyncio/test_windows_events.py +++ b/Lib/test/test_asyncio/test_windows_events.py @@ -98,8 +98,10 @@ class ProactorTests(test_utils.TestCase): # result should be False at timeout fut = self.loop._proactor.wait_for_handle(event, 0.5) start = self.loop.time() - self.loop.run_until_complete(fut) + done = self.loop.run_until_complete(fut) elapsed = self.loop.time() - start + + self.assertEqual(done, False) self.assertFalse(fut.result()) self.assertTrue(0.48 < elapsed < 0.9, elapsed) @@ -109,8 +111,10 @@ class ProactorTests(test_utils.TestCase): # result should be True immediately fut = self.loop._proactor.wait_for_handle(event, 10) start = self.loop.time() - self.loop.run_until_complete(fut) + done = self.loop.run_until_complete(fut) elapsed = self.loop.time() - start + + self.assertEqual(done, True) self.assertTrue(fut.result()) self.assertTrue(0 <= elapsed < 0.3, elapsed)