Exemplo n.º 1
0
    def test__run_once(self):
        h1 = events.TimerHandle(time.monotonic() + 0.1, lambda: True, ())
        h2 = events.TimerHandle(time.monotonic() + 10.0, lambda: True, ())

        h1.cancel()

        self.loop._process_events = unittest.mock.Mock()
        self.loop._scheduled.append(h1)
        self.loop._scheduled.append(h2)
        self.loop._run_once()

        t = self.loop._selector.select.call_args[0][0]
        self.assertTrue(9.99 < t < 10.1, t)
        self.assertEqual([h2], self.loop._scheduled)
        self.assertTrue(self.loop._process_events.called)
Exemplo n.º 2
0
    def test__run_once_timeout(self):
        h = events.TimerHandle(time.monotonic() + 10.0, lambda: True, ())

        self.loop._process_events = unittest.mock.Mock()
        self.loop._scheduled.append(h)
        self.loop._run_once(1.0)
        self.assertEqual((1.0, ), self.loop._selector.select.call_args[0])
Exemplo n.º 3
0
    def test_run_once_in_executor_handle(self):
        def cb():
            pass

        self.assertRaises(AssertionError, self.loop.run_in_executor, None,
                          events.Handle(cb, ()), ('', ))
        self.assertRaises(AssertionError, self.loop.run_in_executor, None,
                          events.TimerHandle(10, cb, ()))
Exemplo n.º 4
0
    def test__run_once_timeout_with_ready(self):
        # If event loop has ready callbacks, select timeout is always 0.
        h = events.TimerHandle(time.monotonic() + 10.0, lambda: True, ())

        self.loop._process_events = unittest.mock.Mock()
        self.loop._scheduled.append(h)
        self.loop._ready.append(h)
        self.loop._run_once(1.0)

        self.assertEqual((0, ), self.loop._selector.select.call_args[0])
Exemplo n.º 5
0
    def test__run_once_logging(self, m_logging, 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]

        m_time.monotonic = monotonic
        m_logging.INFO = logging.INFO
        m_logging.DEBUG = logging.DEBUG

        self.loop._scheduled.append(events.TimerHandle(11.0, lambda: True, ()))
        self.loop._process_events = unittest.mock.Mock()
        self.loop._run_once()
        self.assertEqual(logging.INFO, m_logging.log.call_args[0][0])

        idx = -1
        data = [10.0, 10.0, 10.3, 13.0]
        self.loop._scheduled = [events.TimerHandle(11.0, lambda: True, ())]
        self.loop._run_once()
        self.assertEqual(logging.DEBUG, m_logging.log.call_args[0][0])
Exemplo n.º 6
0
    def test__run_once_schedule_handle(self):
        handle = None
        processed = False

        def cb(loop):
            nonlocal processed, handle
            processed = True
            handle = loop.call_soon(lambda: True)

        h = events.TimerHandle(time.monotonic() - 1, cb, (self.loop, ))

        self.loop._process_events = unittest.mock.Mock()
        self.loop._scheduled.append(h)
        self.loop._run_once()

        self.assertTrue(processed)
        self.assertEqual([handle], list(self.loop._ready))
Exemplo n.º 7
0
    def test__add_callback_timer(self):
        h = events.TimerHandle(time.monotonic() + 10, lambda: False, ())

        self.loop._add_callback(h)
        self.assertIn(h, self.loop._scheduled)