Improve fixture usage for sensor based deCONZ tests (#122297)

This commit is contained in:
Robert Svensson 2024-07-21 13:56:16 +02:00 committed by GitHub
parent 87e377cf84
commit 48661054d9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
13 changed files with 530 additions and 619 deletions

View file

@ -122,6 +122,8 @@ def fixture_get_request(
if "state" in light_payload: if "state" in light_payload:
light_payload = {"0": light_payload} light_payload = {"0": light_payload}
data.setdefault("lights", light_payload) data.setdefault("lights", light_payload)
if "state" in sensor_payload or "config" in sensor_payload:
sensor_payload = {"0": sensor_payload}
data.setdefault("sensors", sensor_payload) data.setdefault("sensors", sensor_payload)
def __mock_requests(host: str = "") -> None: def __mock_requests(host: str = "") -> None:
@ -185,16 +187,13 @@ def fixture_light_data() -> dict[str, Any]:
@pytest.fixture(name="sensor_payload") @pytest.fixture(name="sensor_payload")
def fixture_sensor_data(sensor_1_payload: dict[str, Any]) -> dict[str, Any]: def fixture_sensor_data() -> dict[str, Any]:
"""Sensor data.""" """Sensor data.
if sensor_1_payload:
return {"1": sensor_1_payload}
return {}
Should be
@pytest.fixture(name="sensor_1_payload") - one sensor data payload {"config": ..., "state": ...} ("0")
def fixture_sensor_1_data() -> dict[str, Any]: - multiple sensors {"1": ..., "2": ...}
"""Sensor 1 data.""" """
return {} return {}

View file

@ -70,7 +70,6 @@ from tests.test_util.aiohttp import AiohttpClientMocker
"sensor_payload", "sensor_payload",
[ [
{ {
"0": {
"config": { "config": {
"battery": 95, "battery": 95,
"enrolled": 1, "enrolled": 1,
@ -96,7 +95,6 @@ from tests.test_util.aiohttp import AiohttpClientMocker
"type": "ZHAAncillaryControl", "type": "ZHAAncillaryControl",
"uniqueid": "00:00:00:00:00:00:00:00-00", "uniqueid": "00:00:00:00:00:00:00:00-00",
} }
}
], ],
) )
async def test_alarm_control_panel( async def test_alarm_control_panel(

View file

@ -454,7 +454,7 @@ TEST_DATA = [
@pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: True}]) @pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: True}])
@pytest.mark.parametrize(("sensor_1_payload", "expected"), TEST_DATA) @pytest.mark.parametrize(("sensor_payload", "expected"), TEST_DATA)
async def test_binary_sensors( async def test_binary_sensors(
hass: HomeAssistant, hass: HomeAssistant,
device_registry: dr.DeviceRegistry, device_registry: dr.DeviceRegistry,
@ -492,11 +492,7 @@ async def test_binary_sensors(
# Change state # Change state
event_changed_sensor = { event_changed_sensor = {"r": "sensors", "state": expected["websocket_event"]}
"r": "sensors",
"id": "1",
"state": expected["websocket_event"],
}
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
await hass.async_block_till_done() await hass.async_block_till_done()
assert hass.states.get(expected["entity_id"]).state == expected["next_state"] assert hass.states.get(expected["entity_id"]).state == expected["next_state"]
@ -514,7 +510,7 @@ async def test_binary_sensors(
@pytest.mark.parametrize( @pytest.mark.parametrize(
"sensor_1_payload", "sensor_payload",
[ [
{ {
"name": "CLIP presence sensor", "name": "CLIP presence sensor",
@ -607,7 +603,6 @@ async def test_add_new_binary_sensor(
event_added_sensor = { event_added_sensor = {
"e": "added", "e": "added",
"r": "sensors", "r": "sensors",
"id": "1",
"sensor": { "sensor": {
"id": "Presence sensor id", "id": "Presence sensor id",
"name": "Presence sensor", "name": "Presence sensor",
@ -646,7 +641,6 @@ async def test_add_new_binary_sensor_ignored_load_entities_on_service_call(
event_added_sensor = { event_added_sensor = {
"e": "added", "e": "added",
"r": "sensors", "r": "sensors",
"id": "1",
"sensor": sensor, "sensor": sensor,
} }
@ -667,7 +661,7 @@ async def test_add_new_binary_sensor_ignored_load_entities_on_service_call(
== 0 == 0
) )
deconz_payload["sensors"] = {"1": sensor} deconz_payload["sensors"]["0"] = sensor
mock_requests() mock_requests()
await hass.services.async_call(DECONZ_DOMAIN, SERVICE_DEVICE_REFRESH) await hass.services.async_call(DECONZ_DOMAIN, SERVICE_DEVICE_REFRESH)
@ -699,7 +693,6 @@ async def test_add_new_binary_sensor_ignored_load_entities_on_options_change(
event_added_sensor = { event_added_sensor = {
"e": "added", "e": "added",
"r": "sensors", "r": "sensors",
"id": "1",
"sensor": sensor, "sensor": sensor,
} }
@ -720,7 +713,7 @@ async def test_add_new_binary_sensor_ignored_load_entities_on_options_change(
== 0 == 0
) )
deconz_payload["sensors"] = {"1": sensor} deconz_payload["sensors"]["0"] = sensor
mock_requests() mock_requests()
hass.config_entries.async_update_entry( hass.config_entries.async_update_entry(

View file

@ -54,7 +54,6 @@ from tests.test_util.aiohttp import AiohttpClientMocker
"sensor_payload", "sensor_payload",
[ [
{ {
"0": {
"config": { "config": {
"battery": 59, "battery": 59,
"displayflipped": None, "displayflipped": None,
@ -84,7 +83,6 @@ from tests.test_util.aiohttp import AiohttpClientMocker
"type": "ZHAThermostat", "type": "ZHAThermostat",
"uniqueid": "14:b4:57:ff:fe:d5:4e:77-01-0201", "uniqueid": "14:b4:57:ff:fe:d5:4e:77-01-0201",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -179,7 +177,6 @@ async def test_simple_climate_device(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"name": "Thermostat", "name": "Thermostat",
"type": "ZHAThermostat", "type": "ZHAThermostat",
"state": {"on": True, "temperature": 2260, "valve": 30}, "state": {"on": True, "temperature": 2260, "valve": 30},
@ -192,7 +189,6 @@ async def test_simple_climate_device(
}, },
"uniqueid": "00:00:00:00:00:00:00:00-00", "uniqueid": "00:00:00:00:00:00:00:00-00",
} }
}
], ],
) )
async def test_climate_device_without_cooling_support( async def test_climate_device_without_cooling_support(
@ -225,7 +221,6 @@ async def test_climate_device_without_cooling_support(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"config": {"mode": "off"}, "config": {"mode": "off"},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
@ -241,7 +236,6 @@ async def test_climate_device_without_cooling_support(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"config": {"mode": "other"}, "config": {"mode": "other"},
"state": {"on": True}, "state": {"on": True},
} }
@ -258,7 +252,6 @@ async def test_climate_device_without_cooling_support(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": {"on": False}, "state": {"on": False},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
@ -272,7 +265,7 @@ async def test_climate_device_without_cooling_support(
# Verify service calls # Verify service calls
aioclient_mock = mock_put_request("/sensors/1/config") aioclient_mock = mock_put_request("/sensors/0/config")
# Service set HVAC mode to auto # Service set HVAC mode to auto
@ -354,7 +347,6 @@ async def test_climate_device_without_cooling_support(
"sensor_payload", "sensor_payload",
[ [
{ {
"0": {
"config": { "config": {
"battery": 25, "battery": 25,
"coolsetpoint": 1111, "coolsetpoint": 1111,
@ -379,7 +371,6 @@ async def test_climate_device_without_cooling_support(
"type": "ZHAThermostat", "type": "ZHAThermostat",
"uniqueid": "00:24:46:00:00:11:6f:56-01-0201", "uniqueid": "00:24:46:00:00:11:6f:56-01-0201",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -455,7 +446,6 @@ async def test_climate_device_with_cooling_support(
"sensor_payload", "sensor_payload",
[ [
{ {
"0": {
"config": { "config": {
"battery": 25, "battery": 25,
"coolsetpoint": None, "coolsetpoint": None,
@ -480,7 +470,6 @@ async def test_climate_device_with_cooling_support(
"type": "ZHAThermostat", "type": "ZHAThermostat",
"uniqueid": "00:24:46:00:00:11:6f:56-01-0201", "uniqueid": "00:24:46:00:00:11:6f:56-01-0201",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -591,7 +580,6 @@ async def test_climate_device_with_fan_support(
"sensor_payload", "sensor_payload",
[ [
{ {
"0": {
"config": { "config": {
"battery": 25, "battery": 25,
"coolsetpoint": None, "coolsetpoint": None,
@ -617,7 +605,6 @@ async def test_climate_device_with_fan_support(
"type": "ZHAThermostat", "type": "ZHAThermostat",
"uniqueid": "00:24:46:00:00:11:6f:56-01-0201", "uniqueid": "00:24:46:00:00:11:6f:56-01-0201",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -775,7 +762,6 @@ async def test_clip_climate_device(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"name": "Thermostat", "name": "Thermostat",
"type": "ZHAThermostat", "type": "ZHAThermostat",
"state": {"on": True, "temperature": 2260, "valve": 30}, "state": {"on": True, "temperature": 2260, "valve": 30},
@ -788,7 +774,6 @@ async def test_clip_climate_device(
}, },
"uniqueid": "00:00:00:00:00:00:00:00-00", "uniqueid": "00:00:00:00:00:00:00:00-00",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -803,11 +788,7 @@ async def test_verify_state_update(
== HVACAction.HEATING == HVACAction.HEATING
) )
event_changed_sensor = { event_changed_sensor = {"r": "sensors", "state": {"on": False}}
"r": "sensors",
"id": "1",
"state": {"on": False},
}
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
await hass.async_block_till_done() await hass.async_block_till_done()
@ -827,7 +808,6 @@ async def test_add_new_climate_device(
event_added_sensor = { event_added_sensor = {
"e": "added", "e": "added",
"r": "sensors", "r": "sensors",
"id": "1",
"sensor": { "sensor": {
"id": "Thermostat id", "id": "Thermostat id",
"name": "Thermostat", "name": "Thermostat",
@ -862,14 +842,12 @@ async def test_add_new_climate_device(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"name": "CLIP thermostat sensor", "name": "CLIP thermostat sensor",
"type": "CLIPThermostat", "type": "CLIPThermostat",
"state": {}, "state": {},
"config": {}, "config": {},
"uniqueid": "00:00:00:00:00:00:00:00-00", "uniqueid": "00:00:00:00:00:00:00:00-00",
}, },
}
], ],
) )
@pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: False}]) @pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: False}])
@ -883,7 +861,6 @@ async def test_not_allow_clip_thermostat(hass: HomeAssistant) -> None:
"sensor_payload", "sensor_payload",
[ [
{ {
"0": {
"config": { "config": {
"battery": 25, "battery": 25,
"heatsetpoint": 2222, "heatsetpoint": 2222,
@ -903,7 +880,6 @@ async def test_not_allow_clip_thermostat(hass: HomeAssistant) -> None:
"type": "ZHAThermostat", "type": "ZHAThermostat",
"uniqueid": "00:24:46:00:00:11:6f:56-01-0201", "uniqueid": "00:24:46:00:00:11:6f:56-01-0201",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -922,7 +898,6 @@ async def test_no_mode_no_state(hass: HomeAssistant) -> None:
"sensor_payload", "sensor_payload",
[ [
{ {
"0": {
"config": { "config": {
"battery": 58, "battery": 58,
"heatsetpoint": 2200, "heatsetpoint": 2200,
@ -954,7 +929,6 @@ async def test_no_mode_no_state(hass: HomeAssistant) -> None:
"type": "ZHAThermostat", "type": "ZHAThermostat",
"uniqueid": "84:fd:27:ff:fe:8a:eb:89-01-0201", "uniqueid": "84:fd:27:ff:fe:8a:eb:89-01-0201",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")

View file

@ -243,7 +243,6 @@ async def test_deconz_events(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"config": { "config": {
"battery": 95, "battery": 95,
"enrolled": 1, "enrolled": 1,
@ -269,7 +268,6 @@ async def test_deconz_events(
"type": "ZHAAncillaryControl", "type": "ZHAAncillaryControl",
"uniqueid": "00:00:00:00:00:00:00:01-00", "uniqueid": "00:00:00:00:00:00:00:01-00",
} }
}
], ],
) )
async def test_deconz_alarm_events( async def test_deconz_alarm_events(
@ -296,7 +294,6 @@ async def test_deconz_alarm_events(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": {"action": AncillaryControlAction.EMERGENCY}, "state": {"action": AncillaryControlAction.EMERGENCY},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
@ -318,7 +315,6 @@ async def test_deconz_alarm_events(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": {"action": AncillaryControlAction.FIRE}, "state": {"action": AncillaryControlAction.FIRE},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
@ -340,7 +336,6 @@ async def test_deconz_alarm_events(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": {"action": AncillaryControlAction.INVALID_CODE}, "state": {"action": AncillaryControlAction.INVALID_CODE},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
@ -362,7 +357,6 @@ async def test_deconz_alarm_events(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": {"action": AncillaryControlAction.PANIC}, "state": {"action": AncillaryControlAction.PANIC},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
@ -384,7 +378,6 @@ async def test_deconz_alarm_events(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": {"action": AncillaryControlAction.ARMED_AWAY}, "state": {"action": AncillaryControlAction.ARMED_AWAY},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
@ -396,7 +389,6 @@ async def test_deconz_alarm_events(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": {"panel": AncillaryControlPanel.ARMED_AWAY}, "state": {"panel": AncillaryControlPanel.ARMED_AWAY},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
@ -420,7 +412,6 @@ async def test_deconz_alarm_events(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"config": { "config": {
"devicemode": "undirected", "devicemode": "undirected",
"on": True, "on": True,
@ -443,7 +434,6 @@ async def test_deconz_alarm_events(
"type": "ZHAPresence", "type": "ZHAPresence",
"uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-0406", "uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-0406",
} }
}
], ],
) )
async def test_deconz_presence_events( async def test_deconz_presence_events(
@ -481,7 +471,6 @@ async def test_deconz_presence_events(
): ):
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": {"presenceevent": presence_event}, "state": {"presenceevent": presence_event},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
@ -500,7 +489,6 @@ async def test_deconz_presence_events(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": {"presenceevent": PresenceStatePresenceEvent.NINE}, "state": {"presenceevent": PresenceStatePresenceEvent.NINE},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
@ -524,7 +512,6 @@ async def test_deconz_presence_events(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"config": { "config": {
"battery": 100, "battery": 100,
"on": True, "on": True,
@ -546,7 +533,6 @@ async def test_deconz_presence_events(
"type": "ZHARelativeRotary", "type": "ZHARelativeRotary",
"uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-14-fc00", "uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-14-fc00",
} }
}
], ],
) )
async def test_deconz_relative_rotary_events( async def test_deconz_relative_rotary_events(
@ -575,7 +561,6 @@ async def test_deconz_relative_rotary_events(
for rotary_event, duration, rotation in ((1, 100, 50), (2, 200, -50)): for rotary_event, duration, rotation in ((1, 100, 50), (2, 200, -50)):
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": { "state": {
"rotaryevent": rotary_event, "rotaryevent": rotary_event,
"expectedeventduration": duration, "expectedeventduration": duration,
@ -600,7 +585,6 @@ async def test_deconz_relative_rotary_events(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"name": "123", "name": "123",
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)

View file

@ -47,7 +47,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"config": { "config": {
"alert": "none", "alert": "none",
"battery": 60, "battery": 60,
@ -66,7 +65,6 @@ def stub_blueprint_populate_autouse(stub_blueprint_populate: None) -> None:
"type": "ZHASwitch", "type": "ZHASwitch",
"uniqueid": "d0:cf:5e:ff:fe:71:a4:3a-01-1000", "uniqueid": "d0:cf:5e:ff:fe:71:a4:3a-01-1000",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -153,7 +151,6 @@ async def test_get_triggers(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"config": { "config": {
"battery": 95, "battery": 95,
"enrolled": 1, "enrolled": 1,
@ -179,7 +176,6 @@ async def test_get_triggers(
"type": "ZHAAncillaryControl", "type": "ZHAAncillaryControl",
"uniqueid": "00:00:00:00:00:00:00:00-00", "uniqueid": "00:00:00:00:00:00:00:00-00",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -250,7 +246,6 @@ async def test_get_triggers_for_alarm_event(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"config": { "config": {
"alert": "none", "alert": "none",
"group": "10", "group": "10",
@ -268,7 +263,6 @@ async def test_get_triggers_for_alarm_event(
"type": "ZHASwitch", "type": "ZHASwitch",
"uniqueid": "d0:cf:5e:ff:fe:71:a4:3a-01-1000", "uniqueid": "d0:cf:5e:ff:fe:71:a4:3a-01-1000",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -293,7 +287,6 @@ async def test_get_triggers_manage_unsupported_remotes(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"config": { "config": {
"alert": "none", "alert": "none",
"battery": 60, "battery": 60,
@ -312,7 +305,6 @@ async def test_get_triggers_manage_unsupported_remotes(
"type": "ZHASwitch", "type": "ZHASwitch",
"uniqueid": "d0:cf:5e:ff:fe:71:a4:3a-01-1000", "uniqueid": "d0:cf:5e:ff:fe:71:a4:3a-01-1000",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -353,7 +345,6 @@ async def test_functional_device_trigger(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": {"buttonevent": 1002}, "state": {"buttonevent": 1002},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)

View file

@ -121,14 +121,12 @@ async def test_gateway_device_configuration_url_when_addon(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"name": "presence", "name": "presence",
"type": "ZHAPresence", "type": "ZHAPresence",
"state": {"presence": False}, "state": {"presence": False},
"config": {"on": True, "reachable": True}, "config": {"on": True, "reachable": True},
"uniqueid": "00:00:00:00:00:00:00:00-00", "uniqueid": "00:00:00:00:00:00:00:00-00",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")

View file

@ -96,7 +96,6 @@ async def test_lock_from_light(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"config": { "config": {
"battery": 100, "battery": 100,
"lock": False, "lock": False,
@ -117,7 +116,6 @@ async def test_lock_from_light(
"type": "ZHADoorLock", "type": "ZHADoorLock",
"uniqueid": "00:00:00:00:00:00:00:00-00", "uniqueid": "00:00:00:00:00:00:00:00-00",
} }
}
], ],
) )
async def test_lock_from_sensor( async def test_lock_from_sensor(
@ -132,7 +130,6 @@ async def test_lock_from_sensor(
event_changed_sensor = { event_changed_sensor = {
"r": "sensors", "r": "sensors",
"id": "1",
"state": {"lockstate": "locked"}, "state": {"lockstate": "locked"},
} }
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
@ -142,7 +139,7 @@ async def test_lock_from_sensor(
# Verify service calls # Verify service calls
aioclient_mock = mock_put_request("/sensors/1/config") aioclient_mock = mock_put_request("/sensors/0/config")
# Service lock door # Service lock door

View file

@ -30,7 +30,6 @@ from tests.components.logbook.common import MockRow, mock_humanify
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"config": { "config": {
"armed": "disarmed", "armed": "disarmed",
"enrolled": 0, "enrolled": 0,
@ -54,7 +53,6 @@ from tests.components.logbook.common import MockRow, mock_humanify
"type": "ZHAAncillaryControl", "type": "ZHAAncillaryControl",
"uniqueid": "00:0d:6f:00:13:4f:61:39-01-0501", "uniqueid": "00:0d:6f:00:13:4f:61:39-01-0501",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -64,8 +62,8 @@ async def test_humanifying_deconz_alarm_event(
sensor_payload: dict[str, Any], sensor_payload: dict[str, Any],
) -> None: ) -> None:
"""Test humanifying deCONZ alarm event.""" """Test humanifying deCONZ alarm event."""
keypad_event_id = slugify(sensor_payload["1"]["name"]) keypad_event_id = slugify(sensor_payload["name"])
keypad_serial = serial_from_unique_id(sensor_payload["1"]["uniqueid"]) keypad_serial = serial_from_unique_id(sensor_payload["uniqueid"])
keypad_entry = device_registry.async_get_device( keypad_entry = device_registry.async_get_device(
identifiers={(DECONZ_DOMAIN, keypad_serial)} identifiers={(DECONZ_DOMAIN, keypad_serial)}
) )

View file

@ -23,7 +23,6 @@ from tests.test_util.aiohttp import AiohttpClientMocker
TEST_DATA = [ TEST_DATA = [
( # Presence sensor - delay configuration ( # Presence sensor - delay configuration
{ {
"0": {
"name": "Presence sensor", "name": "Presence sensor",
"type": "ZHAPresence", "type": "ZHAPresence",
"state": {"dark": False, "presence": False}, "state": {"dark": False, "presence": False},
@ -34,7 +33,6 @@ TEST_DATA = [
"temperature": 10, "temperature": 10,
}, },
"uniqueid": "00:00:00:00:00:00:00:00-00", "uniqueid": "00:00:00:00:00:00:00:00-00",
}
}, },
{ {
"entity_count": 3, "entity_count": 3,
@ -61,7 +59,6 @@ TEST_DATA = [
), ),
( # Presence sensor - duration configuration ( # Presence sensor - duration configuration
{ {
"0": {
"name": "Presence sensor", "name": "Presence sensor",
"type": "ZHAPresence", "type": "ZHAPresence",
"state": {"dark": False, "presence": False}, "state": {"dark": False, "presence": False},
@ -72,7 +69,6 @@ TEST_DATA = [
"temperature": 10, "temperature": 10,
}, },
"uniqueid": "00:00:00:00:00:00:00:00-00", "uniqueid": "00:00:00:00:00:00:00:00-00",
}
}, },
{ {
"entity_count": 3, "entity_count": 3,

View file

@ -24,7 +24,6 @@ from tests.test_util.aiohttp import AiohttpClientMocker
TEST_DATA = [ TEST_DATA = [
( # Presence Device Mode ( # Presence Device Mode
{ {
"1": {
"config": { "config": {
"devicemode": "undirected", "devicemode": "undirected",
"on": True, "on": True,
@ -46,7 +45,6 @@ TEST_DATA = [
"swversion": "20210121", "swversion": "20210121",
"type": "ZHAPresence", "type": "ZHAPresence",
"uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-0406", "uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-0406",
}
}, },
{ {
"entity_count": 5, "entity_count": 5,
@ -59,13 +57,12 @@ TEST_DATA = [
"options": ["leftright", "undirected"], "options": ["leftright", "undirected"],
}, },
"option": PresenceConfigDeviceMode.LEFT_AND_RIGHT.value, "option": PresenceConfigDeviceMode.LEFT_AND_RIGHT.value,
"request": "/sensors/1/config", "request": "/sensors/0/config",
"request_data": {"devicemode": "leftright"}, "request_data": {"devicemode": "leftright"},
}, },
), ),
( # Presence Sensitivity ( # Presence Sensitivity
{ {
"1": {
"config": { "config": {
"devicemode": "undirected", "devicemode": "undirected",
"on": True, "on": True,
@ -87,7 +84,6 @@ TEST_DATA = [
"swversion": "20210121", "swversion": "20210121",
"type": "ZHAPresence", "type": "ZHAPresence",
"uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-0406", "uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-0406",
}
}, },
{ {
"entity_count": 5, "entity_count": 5,
@ -100,13 +96,12 @@ TEST_DATA = [
"options": ["High", "Medium", "Low"], "options": ["High", "Medium", "Low"],
}, },
"option": "Medium", "option": "Medium",
"request": "/sensors/1/config", "request": "/sensors/0/config",
"request_data": {"sensitivity": 2}, "request_data": {"sensitivity": 2},
}, },
), ),
( # Presence Trigger Distance ( # Presence Trigger Distance
{ {
"1": {
"config": { "config": {
"devicemode": "undirected", "devicemode": "undirected",
"on": True, "on": True,
@ -128,7 +123,6 @@ TEST_DATA = [
"swversion": "20210121", "swversion": "20210121",
"type": "ZHAPresence", "type": "ZHAPresence",
"uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-0406", "uniqueid": "xx:xx:xx:xx:xx:xx:xx:xx-01-0406",
}
}, },
{ {
"entity_count": 5, "entity_count": 5,
@ -141,7 +135,7 @@ TEST_DATA = [
"options": ["far", "medium", "near"], "options": ["far", "medium", "near"],
}, },
"option": PresenceConfigTriggerDistance.FAR.value, "option": PresenceConfigTriggerDistance.FAR.value,
"request": "/sensors/1/config", "request": "/sensors/0/config",
"request_data": {"triggerdistance": "far"}, "request_data": {"triggerdistance": "far"},
}, },
), ),

View file

@ -899,7 +899,7 @@ TEST_DATA = [
] ]
@pytest.mark.parametrize(("sensor_1_payload", "expected"), TEST_DATA) @pytest.mark.parametrize(("sensor_payload", "expected"), TEST_DATA)
@pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: True}]) @pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: True}])
async def test_sensors( async def test_sensors(
hass: HomeAssistant, hass: HomeAssistant,
@ -952,7 +952,7 @@ async def test_sensors(
# Change state # Change state
event_changed_sensor = {"r": "sensors", "id": "1"} event_changed_sensor = {"r": "sensors"}
event_changed_sensor |= expected["websocket_event"] event_changed_sensor |= expected["websocket_event"]
await mock_websocket_data(event_changed_sensor) await mock_websocket_data(event_changed_sensor)
await hass.async_block_till_done() await hass.async_block_till_done()
@ -974,14 +974,12 @@ async def test_sensors(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"name": "CLIP temperature sensor", "name": "CLIP temperature sensor",
"type": "CLIPTemperature", "type": "CLIPTemperature",
"state": {"temperature": 2600}, "state": {"temperature": 2600},
"config": {}, "config": {},
"uniqueid": "00:00:00:00:00:00:00:02-00", "uniqueid": "00:00:00:00:00:00:00:02-00",
}, },
}
], ],
) )
@pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: False}]) @pytest.mark.parametrize("config_entry_options", [{CONF_ALLOW_CLIP_SENSOR: False}])
@ -1065,7 +1063,6 @@ async def test_add_new_sensor(
event_added_sensor = { event_added_sensor = {
"e": "added", "e": "added",
"r": "sensors", "r": "sensors",
"id": "1",
"sensor": { "sensor": {
"id": "Light sensor id", "id": "Light sensor id",
"name": "Light level sensor", "name": "Light level sensor",
@ -1102,15 +1099,13 @@ async def test_dont_add_sensor_if_state_is_none(
sensor_property: str, sensor_property: str,
) -> None: ) -> None:
"""Test sensor with scaled data is not created if state is None.""" """Test sensor with scaled data is not created if state is None."""
sensor_payload |= { sensor_payload["0"] = {
"1": {
"name": "Sensor 1", "name": "Sensor 1",
"type": sensor_type, "type": sensor_type,
"state": {sensor_property: None}, "state": {sensor_property: None},
"config": {}, "config": {},
"uniqueid": "00:00:00:00:00:00:00:00-00", "uniqueid": "00:00:00:00:00:00:00:00-00",
} }
}
await config_entry_factory() await config_entry_factory()
assert len(hass.states.async_all()) == 0 assert len(hass.states.async_all()) == 0
@ -1120,7 +1115,6 @@ async def test_dont_add_sensor_if_state_is_none(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"config": { "config": {
"on": True, "on": True,
"reachable": True, "reachable": True,
@ -1139,7 +1133,6 @@ async def test_dont_add_sensor_if_state_is_none(
"type": "ZHAAirQuality", "type": "ZHAAirQuality",
"uniqueid": "00:00:00:00:00:00:00:00-02-fdef", "uniqueid": "00:00:00:00:00:00:00:00-02-fdef",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -1350,7 +1343,7 @@ async def test_special_danfoss_battery_creation(
@pytest.mark.parametrize( @pytest.mark.parametrize(
"sensor_payload", "sensor_payload",
[{"0": {"type": "not supported", "name": "name", "state": {}, "config": {}}}], [{"type": "not supported", "name": "name", "state": {}, "config": {}}],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
async def test_unsupported_sensor(hass: HomeAssistant) -> None: async def test_unsupported_sensor(hass: HomeAssistant) -> None:

View file

@ -239,14 +239,12 @@ async def test_service_refresh_devices(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"name": "Switch 1", "name": "Switch 1",
"type": "ZHASwitch", "type": "ZHASwitch",
"state": {"buttonevent": 1000}, "state": {"buttonevent": 1000},
"config": {"battery": 100}, "config": {"battery": 100},
"uniqueid": "00:00:00:00:00:00:00:01-00", "uniqueid": "00:00:00:00:00:00:00:01-00",
} }
}
], ],
) )
@pytest.mark.usefixtures("config_entry_setup") @pytest.mark.usefixtures("config_entry_setup")
@ -284,7 +282,7 @@ async def test_service_refresh_devices_trigger_no_state_update(
} }
}, },
"sensors": { "sensors": {
"1": { "0": {
"name": "Switch 1", "name": "Switch 1",
"type": "ZHASwitch", "type": "ZHASwitch",
"state": {"buttonevent": 1000}, "state": {"buttonevent": 1000},
@ -319,13 +317,11 @@ async def test_service_refresh_devices_trigger_no_state_update(
"sensor_payload", "sensor_payload",
[ [
{ {
"1": {
"name": "Switch 1", "name": "Switch 1",
"type": "ZHASwitch", "type": "ZHASwitch",
"state": {"buttonevent": 1000, "gesture": 1}, "state": {"buttonevent": 1000, "gesture": 1},
"config": {"battery": 100}, "config": {"battery": 100},
"uniqueid": "00:00:00:00:00:00:00:03-00", "uniqueid": "00:00:00:00:00:00:00:03-00",
},
} }
], ],
) )