core/tests/components/ozw/test_lock.py

42 lines
1.3 KiB
Python
Raw Normal View History

"""Test Z-Wave Locks."""
from .common import setup_ozw
async def test_lock(hass, lock_data, sent_messages, lock_msg):
"""Test lock."""
receive_message = await setup_ozw(hass, fixture=lock_data)
# Test loaded
state = hass.states.get("lock.danalock_v3_btze_locked")
assert state is not None
assert state.state == "unlocked"
# Test locking
await hass.services.async_call(
"lock", "lock", {"entity_id": "lock.danalock_v3_btze_locked"}, blocking=True
)
assert len(sent_messages) == 1
msg = sent_messages[0]
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
assert msg["payload"] == {"Value": True, "ValueIDKey": 173572112}
# Feedback on state
lock_msg.decode()
lock_msg.payload["Value"] = True
lock_msg.encode()
receive_message(lock_msg)
await hass.async_block_till_done()
state = hass.states.get("lock.danalock_v3_btze_locked")
assert state is not None
assert state.state == "locked"
# Test unlocking
await hass.services.async_call(
"lock", "unlock", {"entity_id": "lock.danalock_v3_btze_locked"}, blocking=True
)
assert len(sent_messages) == 2
msg = sent_messages[1]
assert msg["topic"] == "OpenZWave/1/command/setvalue/"
assert msg["payload"] == {"Value": False, "ValueIDKey": 173572112}