def test_timer_matches_function(): now = datetime.datetime.now() connect_time = now - datetime.timedelta(seconds=4) timer_with_last_time = Timer(datetime.timedelta(seconds=3)) timer_with_last_time.last_time = connect_time timers = [ (Timer(datetime.timedelta(seconds=3)), True), (Timer(datetime.timedelta(seconds=5)), False), (Timer(datetime.timedelta(seconds=5), direct=True), True), (timer_with_last_time, True), (Timer(now - datetime.timedelta(days=1)), True), (Timer(now + datetime.timedelta(days=1)), False), (Timer(now + datetime.timedelta(days=1), direct=True), True), ] for t, expected in timers: assert t.matches(connect_time) is expected