Skip to content

Commit

Permalink
Cleanups and coverage (#41)
Browse files Browse the repository at this point in the history
* clean up device and add coverage

* clean up light and add coverage

* remove unused code

* remove unused code

* coverage

* coverage

* fix cluster handler event registration

* coverage

* coverage

* bump min coverage to 95%

* coverage
  • Loading branch information
dmulcahey committed Apr 5, 2024
1 parent 2ed6795 commit c30c842
Show file tree
Hide file tree
Showing 12 changed files with 240 additions and 1,449 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Expand Up @@ -15,5 +15,5 @@ jobs:
CACHE_VERSION: 2
PYTHON_VERSION_DEFAULT: 3.12
PRE_COMMIT_CACHE_PATH: ~/.cache/pre-commit
MINIMUM_COVERAGE_PERCENTAGE: 93
MINIMUM_COVERAGE_PERCENTAGE: 95
PYTHON_MATRIX: "3.12"
15 changes: 15 additions & 0 deletions tests/test_alarm_control_panel.py
Expand Up @@ -44,6 +44,7 @@ async def test_alarm_control_panel(
device_joined: Callable[[ZigpyDevice], Awaitable[Device]],
zigpy_device: ZigpyDevice, # pylint: disable=redefined-outer-name
zha_gateway: Gateway,
caplog: pytest.LogCaptureFixture,
) -> None:
"""Test zhaws alarm control panel platform."""
zha_device: Device = await device_joined(zigpy_device)
Expand Down Expand Up @@ -184,6 +185,14 @@ async def test_alarm_control_panel(
await zha_gateway.async_block_till_done()
assert alarm_entity.state["state"] == AlarmState.DISARMED

# disarm when already disarmed
cluster.listener_event(
"cluster_command", 1, 0, [security.IasAce.ArmMode.Disarm, "4321", 0]
)
await zha_gateway.async_block_till_done()
assert alarm_entity.state["state"] == AlarmState.DISARMED
assert "IAS ACE already disarmed" in caplog.text

# panic from panel
cluster.listener_event("cluster_command", 1, 4, [])
await zha_gateway.async_block_till_done()
Expand Down Expand Up @@ -217,6 +226,12 @@ async def test_alarm_control_panel(
await reset_alarm_panel(zha_gateway, cluster, alarm_entity)
assert alarm_entity.state["state"] == AlarmState.DISARMED

alarm_entity._cluster_handler.code_required_arm_actions = True
await alarm_entity.async_alarm_arm_away()
await zha_gateway.async_block_till_done()
assert alarm_entity.state["state"] == AlarmState.DISARMED
assert "Invalid code supplied to IAS ACE" in caplog.text


async def reset_alarm_panel(
zha_gateway: Gateway,
Expand Down

0 comments on commit c30c842

Please sign in to comment.