asyncio: IocpProactor.wait_for_handle() test now also checks the result of the

future
This commit is contained in:
Victor Stinner 2014-12-19 17:10:44 +01:00
parent 1b9763d0a9
commit 4d825b45a0
2 changed files with 11 additions and 2 deletions

View File

@ -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:

View File

@ -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)