Deduplicate more fixture data related to deCONZ websocket sensor (#122412)

pull/122421/head
Robert Svensson 2024-07-22 21:37:58 +02:00 committed by GitHub
parent d3df903d1e
commit c61efe931a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
9 changed files with 86 additions and 256 deletions

View File

@ -269,6 +269,19 @@ def fixture_websocket_data(_mock_websocket: _WebsocketMock) -> WebsocketDataType
return change_websocket_data
@pytest.fixture(name="sensor_ws_data")
def fixture_sensor_websocket_data(
mock_websocket_data: WebsocketDataType,
) -> WebsocketDataType:
"""Fixture to send sensor data over websocket."""
async def send_sensor_data(data: dict[str, Any]) -> None:
"""Send sensor data on the websocket."""
await mock_websocket_data({"r": "sensors"} | data)
return send_sensor_data
@pytest.fixture(name="mock_websocket_state")
def fixture_websocket_state(_mock_websocket: _WebsocketMock) -> WebsocketStateType:
"""Fixture to set websocket state."""

View File

@ -102,7 +102,7 @@ async def test_alarm_control_panel(
aioclient_mock: AiohttpClientMocker,
config_entry_setup: ConfigEntry,
mock_put_request: Callable[[str, str], AiohttpClientMocker],
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test successful creation of alarm control panel entities."""
assert len(hass.states.async_all()) == 4
@ -110,22 +110,14 @@ async def test_alarm_control_panel(
# Event signals alarm control panel armed away
event_changed_sensor = {
"r": "sensors",
"state": {"panel": AncillaryControlPanel.ARMED_AWAY},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"panel": AncillaryControlPanel.ARMED_AWAY}})
await hass.async_block_till_done()
assert hass.states.get("alarm_control_panel.keypad").state == STATE_ALARM_ARMED_AWAY
# Event signals alarm control panel armed night
event_changed_sensor = {
"r": "sensors",
"state": {"panel": AncillaryControlPanel.ARMED_NIGHT},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"panel": AncillaryControlPanel.ARMED_NIGHT}})
await hass.async_block_till_done()
assert (
@ -134,22 +126,14 @@ async def test_alarm_control_panel(
# Event signals alarm control panel armed home
event_changed_sensor = {
"r": "sensors",
"state": {"panel": AncillaryControlPanel.ARMED_STAY},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"panel": AncillaryControlPanel.ARMED_STAY}})
await hass.async_block_till_done()
assert hass.states.get("alarm_control_panel.keypad").state == STATE_ALARM_ARMED_HOME
# Event signals alarm control panel disarmed
event_changed_sensor = {
"r": "sensors",
"state": {"panel": AncillaryControlPanel.DISARMED},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"panel": AncillaryControlPanel.DISARMED}})
await hass.async_block_till_done()
assert hass.states.get("alarm_control_panel.keypad").state == STATE_ALARM_DISARMED
@ -161,11 +145,7 @@ async def test_alarm_control_panel(
AncillaryControlPanel.ARMING_NIGHT,
AncillaryControlPanel.ARMING_STAY,
):
event_changed_sensor = {
"r": "sensors",
"state": {"panel": arming_event},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"panel": arming_event}})
await hass.async_block_till_done()
assert hass.states.get("alarm_control_panel.keypad").state == STATE_ALARM_ARMING
@ -176,11 +156,7 @@ async def test_alarm_control_panel(
AncillaryControlPanel.ENTRY_DELAY,
AncillaryControlPanel.EXIT_DELAY,
):
event_changed_sensor = {
"r": "sensors",
"state": {"panel": pending_event},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"panel": pending_event}})
await hass.async_block_till_done()
assert (
@ -189,22 +165,14 @@ async def test_alarm_control_panel(
# Event signals alarm control panel triggered
event_changed_sensor = {
"r": "sensors",
"state": {"panel": AncillaryControlPanel.IN_ALARM},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"panel": AncillaryControlPanel.IN_ALARM}})
await hass.async_block_till_done()
assert hass.states.get("alarm_control_panel.keypad").state == STATE_ALARM_TRIGGERED
# Event signals alarm control panel unknown state keeps previous state
event_changed_sensor = {
"r": "sensors",
"state": {"panel": AncillaryControlPanel.NOT_READY},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"panel": AncillaryControlPanel.NOT_READY}})
await hass.async_block_till_done()
assert hass.states.get("alarm_control_panel.keypad").state == STATE_ALARM_TRIGGERED

View File

@ -460,7 +460,7 @@ async def test_binary_sensors(
device_registry: dr.DeviceRegistry,
entity_registry: er.EntityRegistry,
config_entry_setup: ConfigEntry,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
expected: dict[str, Any],
) -> None:
"""Test successful creation of binary sensor entities."""
@ -492,8 +492,7 @@ async def test_binary_sensors(
# Change state
event_changed_sensor = {"r": "sensors", "state": expected["websocket_event"]}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": expected["websocket_event"]})
await hass.async_block_till_done()
assert hass.states.get(expected["entity_id"]).state == expected["next_state"]
@ -595,14 +594,13 @@ async def test_allow_clip_sensor(hass: HomeAssistant, config_entry_setup) -> Non
@pytest.mark.usefixtures("config_entry_setup")
async def test_add_new_binary_sensor(
hass: HomeAssistant,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test that adding a new binary sensor works."""
assert len(hass.states.async_all()) == 0
event_added_sensor = {
"e": "added",
"r": "sensors",
"sensor": {
"id": "Presence sensor id",
"name": "Presence sensor",
@ -612,7 +610,7 @@ async def test_add_new_binary_sensor(
"uniqueid": "00:00:00:00:00:00:00:00-00",
},
}
await mock_websocket_data(event_added_sensor)
await sensor_ws_data(event_added_sensor)
await hass.async_block_till_done()
assert len(hass.states.async_all()) == 1
@ -628,7 +626,7 @@ async def test_add_new_binary_sensor_ignored_load_entities_on_service_call(
config_entry_setup: ConfigEntry,
deconz_payload: dict[str, Any],
mock_requests: Callable[[str], None],
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test that adding a new binary sensor is not allowed."""
sensor = {
@ -638,15 +636,10 @@ async def test_add_new_binary_sensor_ignored_load_entities_on_service_call(
"config": {"on": True, "reachable": True},
"uniqueid": "00:00:00:00:00:00:00:00-00",
}
event_added_sensor = {
"e": "added",
"r": "sensors",
"sensor": sensor,
}
assert len(hass.states.async_all()) == 0
await mock_websocket_data(event_added_sensor)
await sensor_ws_data({"e": "added", "sensor": sensor})
await hass.async_block_till_done()
assert len(hass.states.async_all()) == 0
@ -680,7 +673,7 @@ async def test_add_new_binary_sensor_ignored_load_entities_on_options_change(
config_entry_setup: ConfigEntry,
deconz_payload: dict[str, Any],
mock_requests: Callable[[str], None],
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test that adding a new binary sensor is not allowed."""
sensor = {
@ -690,15 +683,10 @@ async def test_add_new_binary_sensor_ignored_load_entities_on_options_change(
"config": {"on": True, "reachable": True},
"uniqueid": "00:00:00:00:00:00:00:00-00",
}
event_added_sensor = {
"e": "added",
"r": "sensors",
"sensor": sensor,
}
assert len(hass.states.async_all()) == 0
await mock_websocket_data(event_added_sensor)
await sensor_ws_data({"e": "added", "sensor": sensor})
await hass.async_block_till_done()
assert len(hass.states.async_all()) == 0

View File

@ -89,7 +89,7 @@ from tests.test_util.aiohttp import AiohttpClientMocker
async def test_simple_climate_device(
hass: HomeAssistant,
mock_put_request: Callable[[str, str], AiohttpClientMocker],
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test successful creation of climate entities.
@ -110,11 +110,7 @@ async def test_simple_climate_device(
# Event signals thermostat configured off
event_changed_sensor = {
"r": "sensors",
"state": {"on": False},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"on": False}})
await hass.async_block_till_done()
assert hass.states.get("climate.thermostat").state == STATE_OFF
@ -125,11 +121,7 @@ async def test_simple_climate_device(
# Event signals thermostat state on
event_changed_sensor = {
"r": "sensors",
"state": {"on": True},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"on": True}})
await hass.async_block_till_done()
assert hass.states.get("climate.thermostat").state == HVACMode.HEAT
@ -195,7 +187,7 @@ async def test_climate_device_without_cooling_support(
hass: HomeAssistant,
config_entry_setup: ConfigEntry,
mock_put_request: Callable[[str, str], AiohttpClientMocker],
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test successful creation of sensor entities."""
assert len(hass.states.async_all()) == 2
@ -219,11 +211,7 @@ async def test_climate_device_without_cooling_support(
# Event signals thermostat configured off
event_changed_sensor = {
"r": "sensors",
"config": {"mode": "off"},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"config": {"mode": "off"}})
await hass.async_block_till_done()
assert hass.states.get("climate.thermostat").state == STATE_OFF
@ -234,12 +222,7 @@ async def test_climate_device_without_cooling_support(
# Event signals thermostat state on
event_changed_sensor = {
"r": "sensors",
"config": {"mode": "other"},
"state": {"on": True},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"config": {"mode": "other"}, "state": {"on": True}})
await hass.async_block_till_done()
assert hass.states.get("climate.thermostat").state == HVACMode.HEAT
@ -250,11 +233,7 @@ async def test_climate_device_without_cooling_support(
# Event signals thermostat state off
event_changed_sensor = {
"r": "sensors",
"state": {"on": False},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"on": False}})
await hass.async_block_till_done()
assert hass.states.get("climate.thermostat").state == STATE_OFF
@ -377,7 +356,7 @@ async def test_climate_device_without_cooling_support(
async def test_climate_device_with_cooling_support(
hass: HomeAssistant,
mock_put_request: Callable[[str, str], AiohttpClientMocker],
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test successful creation of sensor entities."""
assert len(hass.states.async_all()) == 2
@ -398,11 +377,7 @@ async def test_climate_device_with_cooling_support(
# Event signals thermostat mode cool
event_changed_sensor = {
"r": "sensors",
"config": {"mode": "cool"},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"config": {"mode": "cool"}})
await hass.async_block_till_done()
await hass.async_block_till_done()
@ -414,11 +389,7 @@ async def test_climate_device_with_cooling_support(
# Event signals thermostat state on
event_changed_sensor = {
"r": "sensors",
"state": {"on": True},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"on": True}})
await hass.async_block_till_done()
assert hass.states.get("climate.zen_01").state == HVACMode.COOL
@ -476,7 +447,7 @@ async def test_climate_device_with_cooling_support(
async def test_climate_device_with_fan_support(
hass: HomeAssistant,
mock_put_request: Callable[[str, str], AiohttpClientMocker],
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test successful creation of sensor entities."""
assert len(hass.states.async_all()) == 2
@ -498,11 +469,7 @@ async def test_climate_device_with_fan_support(
# Event signals fan mode defaults to off
event_changed_sensor = {
"r": "sensors",
"config": {"fanmode": "unsupported"},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"config": {"fanmode": "unsupported"}})
await hass.async_block_till_done()
assert hass.states.get("climate.zen_01").attributes["fan_mode"] == FAN_OFF
@ -512,12 +479,7 @@ async def test_climate_device_with_fan_support(
# Event signals unsupported fan mode
event_changed_sensor = {
"r": "sensors",
"config": {"fanmode": "unsupported"},
"state": {"on": True},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"config": {"fanmode": "unsupported"}, "state": {"on": True}})
await hass.async_block_till_done()
assert hass.states.get("climate.zen_01").attributes["fan_mode"] == FAN_ON
@ -528,11 +490,7 @@ async def test_climate_device_with_fan_support(
# Event signals unsupported fan mode
event_changed_sensor = {
"r": "sensors",
"config": {"fanmode": "unsupported"},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"config": {"fanmode": "unsupported"}})
await hass.async_block_till_done()
assert hass.states.get("climate.zen_01").attributes["fan_mode"] == FAN_ON
@ -611,7 +569,7 @@ async def test_climate_device_with_fan_support(
async def test_climate_device_with_preset(
hass: HomeAssistant,
mock_put_request: Callable[[str, str], AiohttpClientMocker],
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test successful creation of sensor entities."""
assert len(hass.states.async_all()) == 2
@ -636,11 +594,7 @@ async def test_climate_device_with_preset(
# Event signals deCONZ preset
event_changed_sensor = {
"r": "sensors",
"config": {"preset": "manual"},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"config": {"preset": "manual"}})
await hass.async_block_till_done()
assert (
@ -650,11 +604,7 @@ async def test_climate_device_with_preset(
# Event signals unknown preset
event_changed_sensor = {
"r": "sensors",
"config": {"preset": "unsupported"},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"config": {"preset": "unsupported"}})
await hass.async_block_till_done()
assert hass.states.get("climate.zen_01").attributes["preset_mode"] is None
@ -779,7 +729,7 @@ async def test_clip_climate_device(
@pytest.mark.usefixtures("config_entry_setup")
async def test_verify_state_update(
hass: HomeAssistant,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test that state update properly."""
assert hass.states.get("climate.thermostat").state == HVACMode.AUTO
@ -788,8 +738,7 @@ async def test_verify_state_update(
== HVACAction.HEATING
)
event_changed_sensor = {"r": "sensors", "state": {"on": False}}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"on": False}})
await hass.async_block_till_done()
assert hass.states.get("climate.thermostat").state == HVACMode.AUTO
@ -802,12 +751,11 @@ async def test_verify_state_update(
@pytest.mark.usefixtures("config_entry_setup")
async def test_add_new_climate_device(
hass: HomeAssistant,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test that adding a new climate device works."""
event_added_sensor = {
"e": "added",
"r": "sensors",
"sensor": {
"id": "Thermostat id",
"name": "Thermostat",
@ -826,7 +774,7 @@ async def test_add_new_climate_device(
assert len(hass.states.async_all()) == 0
await mock_websocket_data(event_added_sensor)
await sensor_ws_data(event_added_sensor)
await hass.async_block_till_done()
assert len(hass.states.async_all()) == 2
@ -934,7 +882,7 @@ async def test_no_mode_no_state(hass: HomeAssistant) -> None:
@pytest.mark.usefixtures("config_entry_setup")
async def test_boost_mode(
hass: HomeAssistant,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test that a climate device with boost mode and different state works."""
@ -948,13 +896,8 @@ async def test_boost_mode(
assert climate_thermostat.attributes["hvac_action"] is HVACAction.IDLE
# Event signals thermostat preset boost and valve 100 (real data)
event_changed_sensor = {
"r": "sensors",
"config": {"preset": "boost"},
"state": {"valve": 100},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"config": {"preset": "boost"}, "state": {"valve": 100}})
await hass.async_block_till_done()
climate_thermostat = hass.states.get("climate.thermostat")

View File

@ -79,7 +79,7 @@ async def test_deconz_events(
hass: HomeAssistant,
device_registry: dr.DeviceRegistry,
config_entry_setup: ConfigEntry,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test successful creation of deconz events."""
assert len(hass.states.async_all()) == 3
@ -98,12 +98,7 @@ async def test_deconz_events(
captured_events = async_capture_events(hass, CONF_DECONZ_EVENT)
event_changed_sensor = {
"r": "sensors",
"id": "1",
"state": {"buttonevent": 2000},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"id": "1", "state": {"buttonevent": 2000}})
await hass.async_block_till_done()
device = device_registry.async_get_device(
@ -118,12 +113,7 @@ async def test_deconz_events(
"device_id": device.id,
}
event_changed_sensor = {
"r": "sensors",
"id": "3",
"state": {"buttonevent": 2000},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"id": "3", "state": {"buttonevent": 2000}})
await hass.async_block_till_done()
device = device_registry.async_get_device(
@ -139,12 +129,7 @@ async def test_deconz_events(
"device_id": device.id,
}
event_changed_sensor = {
"r": "sensors",
"id": "4",
"state": {"gesture": 0},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"id": "4", "state": {"gesture": 0}})
await hass.async_block_till_done()
device = device_registry.async_get_device(
@ -161,11 +146,10 @@ async def test_deconz_events(
}
event_changed_sensor = {
"r": "sensors",
"id": "5",
"state": {"buttonevent": 6002, "angle": 110, "xy": [0.5982, 0.3897]},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data(event_changed_sensor)
await hass.async_block_till_done()
device = device_registry.async_get_device(
@ -184,12 +168,7 @@ async def test_deconz_events(
# Unsupported event
event_changed_sensor = {
"r": "sensors",
"id": "1",
"name": "other name",
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"id": "1", "name": "other name"})
await hass.async_block_till_done()
assert len(captured_events) == 4
@ -274,7 +253,7 @@ async def test_deconz_alarm_events(
hass: HomeAssistant,
device_registry: dr.DeviceRegistry,
config_entry_setup: ConfigEntry,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test successful creation of deconz alarm events."""
assert len(hass.states.async_all()) == 4
@ -292,11 +271,7 @@ async def test_deconz_alarm_events(
# Emergency event
event_changed_sensor = {
"r": "sensors",
"state": {"action": AncillaryControlAction.EMERGENCY},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"action": AncillaryControlAction.EMERGENCY}})
await hass.async_block_till_done()
device = device_registry.async_get_device(
@ -313,11 +288,7 @@ async def test_deconz_alarm_events(
# Fire event
event_changed_sensor = {
"r": "sensors",
"state": {"action": AncillaryControlAction.FIRE},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"action": AncillaryControlAction.FIRE}})
await hass.async_block_till_done()
device = device_registry.async_get_device(
@ -334,11 +305,7 @@ async def test_deconz_alarm_events(
# Invalid code event
event_changed_sensor = {
"r": "sensors",
"state": {"action": AncillaryControlAction.INVALID_CODE},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"action": AncillaryControlAction.INVALID_CODE}})
await hass.async_block_till_done()
device = device_registry.async_get_device(
@ -355,11 +322,7 @@ async def test_deconz_alarm_events(
# Panic event
event_changed_sensor = {
"r": "sensors",
"state": {"action": AncillaryControlAction.PANIC},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"action": AncillaryControlAction.PANIC}})
await hass.async_block_till_done()
device = device_registry.async_get_device(
@ -376,22 +339,14 @@ async def test_deconz_alarm_events(
# Only care for changes to specific action events
event_changed_sensor = {
"r": "sensors",
"state": {"action": AncillaryControlAction.ARMED_AWAY},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"action": AncillaryControlAction.ARMED_AWAY}})
await hass.async_block_till_done()
assert len(captured_events) == 4
# Only care for action events
event_changed_sensor = {
"r": "sensors",
"state": {"panel": AncillaryControlPanel.ARMED_AWAY},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"panel": AncillaryControlPanel.ARMED_AWAY}})
await hass.async_block_till_done()
assert len(captured_events) == 4
@ -440,7 +395,7 @@ async def test_deconz_presence_events(
hass: HomeAssistant,
device_registry: dr.DeviceRegistry,
config_entry_setup: ConfigEntry,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test successful creation of deconz presence events."""
assert len(hass.states.async_all()) == 5
@ -469,11 +424,7 @@ async def test_deconz_presence_events(
PresenceStatePresenceEvent.LEFT_LEAVE,
PresenceStatePresenceEvent.RIGHT_LEAVE,
):
event_changed_sensor = {
"r": "sensors",
"state": {"presenceevent": presence_event},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"presenceevent": presence_event}})
await hass.async_block_till_done()
assert len(captured_events) == 1
@ -487,11 +438,7 @@ async def test_deconz_presence_events(
# Unsupported presence event
event_changed_sensor = {
"r": "sensors",
"state": {"presenceevent": PresenceStatePresenceEvent.NINE},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"presenceevent": PresenceStatePresenceEvent.NINE}})
await hass.async_block_till_done()
assert len(captured_events) == 0
@ -539,7 +486,7 @@ async def test_deconz_relative_rotary_events(
hass: HomeAssistant,
device_registry: dr.DeviceRegistry,
config_entry_setup: ConfigEntry,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test successful creation of deconz relative rotary events."""
assert len(hass.states.async_all()) == 1
@ -560,14 +507,13 @@ async def test_deconz_relative_rotary_events(
for rotary_event, duration, rotation in ((1, 100, 50), (2, 200, -50)):
event_changed_sensor = {
"r": "sensors",
"state": {
"rotaryevent": rotary_event,
"expectedeventduration": duration,
"expectedrotation": rotation,
},
}
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data(event_changed_sensor)
await hass.async_block_till_done()
assert len(captured_events) == 1
@ -583,11 +529,7 @@ async def test_deconz_relative_rotary_events(
# Unsupported relative rotary event
event_changed_sensor = {
"r": "sensors",
"name": "123",
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"name": "123"})
await hass.async_block_till_done()
assert len(captured_events) == 0

View File

@ -312,7 +312,7 @@ async def test_functional_device_trigger(
hass: HomeAssistant,
device_registry: dr.DeviceRegistry,
service_calls: list[ServiceCall],
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test proper matching and attachment of device trigger automation."""
device = device_registry.async_get_device(
@ -343,11 +343,7 @@ async def test_functional_device_trigger(
assert len(hass.states.async_entity_ids(AUTOMATION_DOMAIN)) == 1
event_changed_sensor = {
"r": "sensors",
"state": {"buttonevent": 1002},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"buttonevent": 1002}})
await hass.async_block_till_done()
assert len(service_calls) == 1

View File

@ -122,17 +122,13 @@ async def test_lock_from_sensor(
hass: HomeAssistant,
config_entry_setup: ConfigEntry,
mock_put_request: Callable[[str, str], AiohttpClientMocker],
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test that all supported lock entities based on sensors are created."""
assert len(hass.states.async_all()) == 2
assert hass.states.get("lock.door_lock").state == STATE_UNLOCKED
event_changed_sensor = {
"r": "sensors",
"state": {"lockstate": "locked"},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"state": {"lockstate": "locked"}})
await hass.async_block_till_done()
assert hass.states.get("lock.door_lock").state == STATE_LOCKED

View File

@ -102,7 +102,7 @@ async def test_number_entities(
device_registry: dr.DeviceRegistry,
entity_registry: er.EntityRegistry,
config_entry_setup: ConfigEntry,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
mock_put_request: Callable[[str, str], AiohttpClientMocker],
expected: dict[str, Any],
) -> None:
@ -134,8 +134,7 @@ async def test_number_entities(
# Change state
event_changed_sensor = {"r": "sensors"} | expected["websocket_event"]
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data(expected["websocket_event"])
await hass.async_block_till_done()
assert hass.states.get(expected["entity_id"]).state == expected["next_state"]

View File

@ -906,7 +906,7 @@ async def test_sensors(
device_registry: dr.DeviceRegistry,
entity_registry: er.EntityRegistry,
config_entry_setup: ConfigEntry,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
expected: dict[str, Any],
) -> None:
"""Test successful creation of sensor entities."""
@ -952,9 +952,7 @@ async def test_sensors(
# Change state
event_changed_sensor = {"r": "sensors"}
event_changed_sensor |= expected["websocket_event"]
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data(expected["websocket_event"])
await hass.async_block_till_done()
assert hass.states.get(expected["entity_id"]).state == expected["next_state"]
@ -1057,12 +1055,11 @@ async def test_allow_clip_sensors(
@pytest.mark.usefixtures("config_entry_setup")
async def test_add_new_sensor(
hass: HomeAssistant,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test that adding a new sensor works."""
event_added_sensor = {
"e": "added",
"r": "sensors",
"sensor": {
"id": "Light sensor id",
"name": "Light level sensor",
@ -1075,7 +1072,7 @@ async def test_add_new_sensor(
assert len(hass.states.async_all()) == 0
await mock_websocket_data(event_added_sensor)
await sensor_ws_data(event_added_sensor)
await hass.async_block_till_done()
assert len(hass.states.async_all()) == 2
@ -1165,7 +1162,7 @@ async def test_air_quality_sensor_without_ppb(hass: HomeAssistant) -> None:
@pytest.mark.usefixtures("config_entry_setup")
async def test_add_battery_later(
hass: HomeAssistant,
mock_websocket_data: WebsocketDataType,
sensor_ws_data: WebsocketDataType,
) -> None:
"""Test that a battery sensor can be created later on.
@ -1174,24 +1171,12 @@ async def test_add_battery_later(
"""
assert len(hass.states.async_all()) == 0
event_changed_sensor = {
"e": "changed",
"r": "sensors",
"id": "2",
"config": {"battery": 50},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"id": "2", "config": {"battery": 50}})
await hass.async_block_till_done()
assert len(hass.states.async_all()) == 0
event_changed_sensor = {
"e": "changed",
"r": "sensors",
"id": "1",
"config": {"battery": 50},
}
await mock_websocket_data(event_changed_sensor)
await sensor_ws_data({"id": "1", "config": {"battery": 50}})
await hass.async_block_till_done()
assert len(hass.states.async_all()) == 1