def test_reset_timer_restores_its_start_time(self): duration = 5 offset = 1 timer = Timer(duration=duration) with freeze_time(datetime.datetime.utcnow() + datetime.timedelta( seconds=duration - offset)) as frozen_time: frozen_time.tick(TICK_INTERVAL) assert 0 < timer.remain_time() < offset timer.reset() frozen_time.tick(TICK_INTERVAL) assert offset < timer.remain_time() < duration
def test_reset_timer_with_invalid_key(self, timer_service: TimerService, mocker): timer = Timer(duration=1) mock_timer_reset = mocker.MagicMock() timer.reset = mock_timer_reset timer_service.add_timer(TIMER_KEY, timer) timer_service.reset_timer(INVALID_TIMER_KEY) assert not mock_timer_reset.called
def test_reset_timer_calls_timer_reset(self, timer_service: TimerService, mocker): timer = Timer(duration=1) mock_timer_reset = mocker.MagicMock() timer.reset = mock_timer_reset timer_service.add_timer(TIMER_KEY, timer) timer_service.reset_timer(TIMER_KEY) assert mock_timer_reset.called
def test_restart_timer_turnoff_timer_and_reset(self, timer_service: TimerService, mocker): mock_timer_off = mocker.MagicMock() mock_timer_reset = mocker.MagicMock() timer = Timer(duration=1) timer.off = mock_timer_off timer.reset = mock_timer_reset timer_service.add_timer(TIMER_KEY, timer) timer_service.restart_timer(TIMER_KEY) assert mock_timer_off.called assert mock_timer_reset.called