]> granicus.if.org Git - python/commitdiff
asyncio: Refactor test__run_once_logging() to not rely on the exact number of
authorVictor Stinner <victor.stinner@gmail.com>
Tue, 17 Jun 2014 23:22:15 +0000 (01:22 +0200)
committerVictor Stinner <victor.stinner@gmail.com>
Tue, 17 Jun 2014 23:22:15 +0000 (01:22 +0200)
calls to time.monotonic(). Use a "fast select" and a "slow select" instead.

Lib/test/test_asyncio/test_base_events.py

index 1611a11438af1fc00ededb88cebe68a530d76753..fb28b87e715ce05607155c5e228ae48a28dccd09 100644 (file)
@@ -240,30 +240,23 @@ class BaseEventLoopTests(unittest.TestCase):
         self.loop.set_debug(False)
         self.assertFalse(self.loop.get_debug())
 
-    @mock.patch('asyncio.base_events.time')
     @mock.patch('asyncio.base_events.logger')
-    def test__run_once_logging(self, m_logger, m_time):
-        # Log to INFO level if timeout > 1.0 sec.
-        idx = -1
-        data = [10.0, 10.0, 12.0, 13.0]
-
-        def monotonic():
-            nonlocal data, idx
-            idx += 1
-            return data[idx]
+    def test__run_once_logging(self, m_logger):
+        def slow_select(timeout):
+            time.sleep(1.0)
+            return []
 
-        m_time.monotonic = monotonic
-
-        self.loop._scheduled.append(
-            asyncio.TimerHandle(11.0, lambda: True, (), self.loop))
+        # Log to INFO level if timeout > 1.0 sec.
+        self.loop._selector.select = slow_select
         self.loop._process_events = mock.Mock()
         self.loop._run_once()
         self.assertEqual(logging.INFO, m_logger.log.call_args[0][0])
 
-        idx = -1
-        data = [10.0, 10.0, 10.3, 13.0]
-        self.loop._scheduled = [asyncio.TimerHandle(11.0, lambda: True, (),
-                                                    self.loop)]
+        def fast_select(timeout):
+            time.sleep(0.001)
+            return []
+
+        self.loop._selector.select = fast_select
         self.loop._run_once()
         self.assertEqual(logging.DEBUG, m_logger.log.call_args[0][0])