class TestEngineTimers(unittest.TestCase): def setUp(self): self.engine = Engine() def test_callback_added(self): timer = self.engine.callback(MagicMock()) self.assertTrue(timer in self.engine._callbacks) def test_loop_added(self): timer = self.engine.loop(MagicMock()) self.assertTrue(timer in self.engine._callbacks) def test_deferred_added(self): timer = self.engine.defer(10, MagicMock()) self.assertTrue(timer in self.engine._deferreds) def test_deferred_with_zero_delay(self): self.assertRaises(ValueError, self.engine.defer, 0, MagicMock()) def test_deferred_with_negative_delay(self): self.assertRaises(ValueError, self.engine.defer, -1, MagicMock()) def test_cycle_added(self): timer = self.engine.cycle(10, MagicMock()) self.assertTrue(timer in self.engine._deferreds) def test_cycle_with_zero_delay(self): self.assertRaises(ValueError, self.engine.cycle, 0, MagicMock()) def test_cycle_with_negative_delay(self): self.assertRaises(ValueError, self.engine.cycle, -1, MagicMock()) def test_remove_timer_with_no_end(self): timer = self.engine.callback(MagicMock()) self.engine._remove_timer(timer) def test_remove_nonexistent_timer_with_no_end(self): timer = MagicMock() timer.end = None self.engine._remove_timer(timer) def test_remove_timer_with_end(self): timer = self.engine.defer(10, MagicMock()) self.engine._remove_timer(timer) def test_remove_nonexistent_timer_with_end(self): timer = MagicMock() timer.end = 1 self.engine._remove_timer(timer)
def test_cancelling_timer_calls_engine_remove_timer(self): engine = Engine() engine._remove_timer = MagicMock() timer = _Timer(engine, None, None) timer.cancel() engine._remove_timer.assert_called_once_with(timer)