|
10 | 10 | )
|
11 | 11 | from homeassistant.components.homekit.const import ATTR_VALUE
|
12 | 12 | from homeassistant.components.homekit.type_security_systems import SecuritySystem
|
13 |
| -from homeassistant.const import ATTR_CODE, ATTR_ENTITY_ID, STATE_UNKNOWN |
| 13 | +from homeassistant.const import ( |
| 14 | + ATTR_CODE, |
| 15 | + ATTR_ENTITY_ID, |
| 16 | + STATE_UNAVAILABLE, |
| 17 | + STATE_UNKNOWN, |
| 18 | +) |
14 | 19 | from homeassistant.core import Event, HomeAssistant
|
15 | 20 |
|
16 | 21 | from tests.common import async_mock_service
|
@@ -307,3 +312,33 @@ async def test_supported_states(hass: HomeAssistant, hk_driver) -> None:
|
307 | 312 |
|
308 | 313 | for val in valid_target_values.values():
|
309 | 314 | assert val in test_config.get("target_values")
|
| 315 | + |
| 316 | + |
| 317 | +@pytest.mark.parametrize( |
| 318 | + ("state"), |
| 319 | + [ |
| 320 | + (None), |
| 321 | + ("None"), |
| 322 | + (STATE_UNKNOWN), |
| 323 | + (STATE_UNAVAILABLE), |
| 324 | + ], |
| 325 | +) |
| 326 | +async def test_handle_non_alarm_states( |
| 327 | + hass: HomeAssistant, hk_driver, events: list[Event], state: str |
| 328 | +) -> None: |
| 329 | + """Test we can handle states that should not raise.""" |
| 330 | + code = "1234" |
| 331 | + config = {ATTR_CODE: code} |
| 332 | + entity_id = "alarm_control_panel.test" |
| 333 | + |
| 334 | + hass.states.async_set(entity_id, state) |
| 335 | + await hass.async_block_till_done() |
| 336 | + acc = SecuritySystem(hass, hk_driver, "SecuritySystem", entity_id, 2, config) |
| 337 | + acc.run() |
| 338 | + await hass.async_block_till_done() |
| 339 | + |
| 340 | + assert acc.aid == 2 |
| 341 | + assert acc.category == 11 # AlarmSystem |
| 342 | + |
| 343 | + assert acc.char_current_state.value == 3 |
| 344 | + assert acc.char_target_state.value == 3 |
0 commit comments