Пример #1
0
def test_repeating_timer_doesnt_repeat_too_much():
    timer = MockTimer()
    cb = Callback()
    RepeatingTimer(timer, 5, cb)

    timer.sleep(12)
    assert cb.call_count == 1

    timer.sleep(12)
    assert cb.call_count == 2
Пример #2
0
def test_repeating_timer_triggers_callback_on_time():
    timer = MockTimer()
    cb = Callback()
    RepeatingTimer(timer, 5, cb)
    assert cb.call_count == 0

    timer.sleep(5)
    assert cb.call_count == 1

    timer.sleep(5)
    assert cb.call_count == 2
Пример #3
0
def test_repeating_timer_is_started_active():
    timer = MockTimer()
    cb = Callback()
    RepeatingTimer(timer, 5, cb)
    assert cb.call_count == 0

    timer.sleep(3)
    assert cb.call_count == 0

    timer.sleep(3)
    assert cb.call_count == 1

    timer.sleep(3)
    assert cb.call_count == 1

    timer.sleep(3)
    assert cb.call_count == 2
Пример #4
0
def test_repeating_timer_can_be_started_inactive():
    timer = MockTimer()
    cb = Callback()
    RepeatingTimer(timer, 5, cb, active=False)

    assert cb.call_count == 0

    timer.sleep(3)
    assert cb.call_count == 0

    timer.sleep(3)
    assert cb.call_count == 0

    timer.sleep(3)
    assert cb.call_count == 0

    timer.sleep(3)
    assert cb.call_count == 0
Пример #5
0
def test_repeating_timer_can_be_stopped():
    timer = MockTimer()
    cb = Callback()
    repeating_timer = RepeatingTimer(timer, 5, cb)

    assert cb.call_count == 0

    timer.sleep(4)
    assert cb.call_count == 0

    timer.sleep(4)
    assert cb.call_count == 1

    repeating_timer.stop()
    timer.sleep(4)
    assert cb.call_count == 1

    timer.sleep(4)
    assert cb.call_count == 1
Пример #6
0
def test_multiple_repeating_timers_can_work_together():
    timer = MockTimer()
    cb1 = Callback()
    cb2 = Callback()
    RepeatingTimer(timer, 5, cb1)
    RepeatingTimer(timer, 2, cb2)

    timer.sleep(3)
    assert cb1.call_count == 0
    assert cb2.call_count == 1

    timer.sleep(3)
    assert cb1.call_count == 1
    assert cb2.call_count == 2

    timer.sleep(3)
    assert cb1.call_count == 1
    assert cb2.call_count == 3

    timer.sleep(3)
    assert cb1.call_count == 2
    assert cb2.call_count == 4