async def test_process_set_hsm() -> None: """Started hub should allow mode to be updated.""" hub = Hub("1.2.3.4", "1234", "token") await hub.start() assert hub.hsm_status == "armedAway" await hub.set_hsm(HSM_DISARM) assert re.search(f"hsm/{HSM_DISARM}$", requests[-1]["url"]) is not None hub._process_event(events["hsmAllDisarmed"]) assert hub.hsm_status == "allDisarmed"
async def test_process_set_mode() -> None: """Started hub should allow mode to be updated.""" hub = Hub("1.2.3.4", "1234", "token") await hub.start() assert hub.mode == "Day" await hub.set_mode("Evening") assert re.search("modes/2$", requests[-1]["url"]) is not None hub._process_event(events["mode"]) assert hub.mode == "Evening"
def test_process_set_mode(self, MockServer) -> None: """Started hub should allow mode to be updated.""" hub = Hub("1.2.3.4", "1234", "token") wait_for(hub.start()) self.assertEqual(hub.mode, "Day") wait_for(hub.set_mode("Evening")) self.assertRegex(requests[-1]["url"], "modes/2$") hub._process_event(events["mode"]) self.assertEqual(hub.mode, "Evening")
def test_process_set_hsm(self, MockServer) -> None: """Started hub should allow mode to be updated.""" hub = Hub("1.2.3.4", "1234", "token") wait_for(hub.start()) self.assertEqual(hub.hsm_status, "armedAway") wait_for(hub.set_hsm(HSM_DISARM)) self.assertRegex(requests[-1]["url"], f"hsm/{HSM_DISARM}$") hub._process_event(events["hsm"]) self.assertEqual(hub.hsm_status, "armedAway")
async def test_process_other_event() -> None: """Started hub should ignore non-device, non-mode events.""" hub = Hub("1.2.3.4", "1234", "token") await hub.start() device = hub.devices["176"] attr = device.attributes["switch"] assert attr.value == "off" hub._process_event(events["other"]) attr = device.attributes["switch"] assert attr.value == "off"
async def test_process_event() -> None: """Started hub should process a device event.""" hub = Hub("1.2.3.4", "1234", "token") await hub.start() device = hub.devices["176"] attr = device.attributes["switch"] assert attr.value == "off" hub._process_event(events["device"]) attr = device.attributes["switch"] assert attr.value == "on"
def test_process_other_event(self, MockServer) -> None: """Started hub should ignore non-device, non-mode events.""" hub = Hub("1.2.3.4", "1234", "token") wait_for(hub.start()) device = hub.devices["176"] attr = device.attributes["switch"] self.assertEqual(attr.value, "off") hub._process_event(events["other"]) attr = device.attributes["switch"] self.assertEqual(attr.value, "off")
async def test_process_hsm_event() -> None: """Started hub should emit HSM events.""" hub = Hub("1.2.3.4", "1234", "token") await hub.start() handler_called = False def listener(_: Any): nonlocal handler_called handler_called = True hub._process_event(events["hsmArmedAway"]) assert handler_called is False hub.add_hsm_listener(listener) hub._process_event(events["hsmArmedAway"]) assert handler_called is True
def test_process_hsm_event(self, MockServer) -> None: """Started hub should emit HSM events.""" hub = Hub("1.2.3.4", "1234", "token") wait_for(hub.start()) handler_called = False def listener(_: Any): nonlocal handler_called handler_called = True hub._process_event(events["hsm"]) self.assertFalse(handler_called) hub.add_hsm_listener(listener) hub._process_event(events["hsm"]) self.assertTrue(handler_called)