IocpProactor.wait_for_handle() test now also checks the result of the future
This commit is contained in:
		@@ -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:
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user