コード例 #1
0
    def test_timer_can_be_reset_after_cancel(self):
        m = Mock(return_value=None)

        t = ResettableTimer(5, m)
        t.start()

        t._timer.pass_time(3)
        m.assert_not_called()
        t.cancel()
        t.reset()
        t.start()

        t._timer.pass_time(6)
        m.assert_called_once_with()
コード例 #2
0
class PiScreenOnOff(object):
    def __init__(self, timeout=15 * 60, pin=17):
        self.__sensor = HcSr501(pin)
        self.__timer = ResettableTimer(timeout, screen, [False])
        self.__timer.start()

    def __run(self):
        while True:
            if self.__sensor.active:
                screen(True)
                self.__timer.reset(start=True)
                sleep(0.5)

    def run(self):
        try:
            self.__run()
        except KeyboardInterrupt:
            self.__timer.cancel()