示例#1
0
class LightsStoreTest(TestCase):

    def setUp(self):
        self.store = LightsStoreStub()
        self.lights = Lights(store=self.store)

    def test_should_add_trigger_to_store(self):
        self.store.add_trigger = MagicMock()
        self.lights.add_trigger(True, 10, 20)
        self.store.add_trigger.assert_called_with(ANY)

    def test_should_read_triggers_from_store(self):
        self.store.read_triggers = MagicMock()
        self.lights = Lights(store=self.store)
        self.store.read_triggers.assert_called_with()

    def test_should_remove_trigger_from_store(self):
        self.store.remove_trigger = MagicMock()
        self.lights.remove_trigger(job_id=TRIGGER.job_id)
        self.store.remove_trigger.assert_called_with(TRIGGER.job_id)

    def test_should_add_history_entry_to_store(self):
        self.store.add_entry = MagicMock()
        self.lights.set_state(True, "test")
        self.store.add_entry.assert_called_with(True, "test")

    def test_should_read_history_from_store(self):
        self.store.read_history = MagicMock()
        self.lights.get_history()
        self.store.read_history.assert_called_with()
示例#2
0
class LightsStateTest(TestCase):
    def setUp(self):
        self.lights = Lights()

    def test_state_starts_as_false(self):
        assert_that(self.lights.get_state(), is_(False))

    def test_set_and_return_state(self):
        self.lights.set_state(True, "test")
        assert_that(self.lights.get_state(), is_(True))

    def test_toggle_flips_state(self):
        assert_that(self.lights.get_state(), is_(False))

        self.lights.toggle("test")
        assert_that(self.lights.get_state(), is_(True))

    def test_set_state_does_not_change_if_less_than_bounce_duration(self):
        self.lights.set_state(True, "test")
        assert_that(self.lights.get_state(), is_(True))

        self.lights.set_state(False, "test")
        assert_that(self.lights.get_state(), is_(True))

    def test_set_state_changes_if_more_than_bounce_duration(self):
        with freeze_time(datetime.now()) as curr_time:
            self.lights.set_state(True, "test")
            assert_that(self.lights.get_state(), is_(True))

            curr_time.tick(delta=timedelta(seconds=90))

            self.lights.set_state(False, "test")
            assert_that(self.lights.get_state(), is_(False))

    def test_toggle_does_not_change_if_less_than_bounce_duration(self):
        self.lights.toggle("test")
        assert_that(self.lights.get_state(), is_(True))

        self.lights.toggle("test")
        assert_that(self.lights.get_state(), is_(True))

    def test_toggle_changes_if_more_than_bounce_duration(self):
        with freeze_time(datetime.now()) as curr_time:
            self.lights.toggle("test")
            assert_that(self.lights.get_state(), is_(True))

            curr_time.tick(delta=timedelta(seconds=90))

            self.lights.toggle("test")
            assert_that(self.lights.get_state(), is_(False))