Provide default values for common keys in deCONZ websocket fixture (#121359)

This commit is contained in:
Robert Svensson 2024-07-06 10:52:50 +02:00 committed by GitHub
parent 1ec95f900d
commit cce77affc7
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
15 changed files with 8 additions and 143 deletions

View file

@ -249,6 +249,12 @@ def fixture_websocket_data(_mock_websocket: _WebsocketMock) -> WebsocketDataType
async def change_websocket_data(data: dict[str, Any]) -> None:
"""Provide new data on the websocket."""
if "t" not in data:
data["t"] = "event"
if "e" not in data:
data["e"] = "changed"
if "id" not in data:
data["id"] = "0"
await _mock_websocket(data=data)
return change_websocket_data

View file

@ -113,10 +113,7 @@ async def test_alarm_control_panel(
# Event signals alarm control panel armed away
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"state": {"panel": AncillaryControlPanel.ARMED_AWAY},
}
await mock_websocket_data(event_changed_sensor)
@ -127,10 +124,7 @@ async def test_alarm_control_panel(
# Event signals alarm control panel armed night
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"state": {"panel": AncillaryControlPanel.ARMED_NIGHT},
}
await mock_websocket_data(event_changed_sensor)
@ -143,10 +137,7 @@ async def test_alarm_control_panel(
# Event signals alarm control panel armed home
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"state": {"panel": AncillaryControlPanel.ARMED_STAY},
}
await mock_websocket_data(event_changed_sensor)
@ -157,10 +148,7 @@ async def test_alarm_control_panel(
# Event signals alarm control panel disarmed
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"state": {"panel": AncillaryControlPanel.DISARMED},
}
await mock_websocket_data(event_changed_sensor)
@ -176,10 +164,7 @@ async def test_alarm_control_panel(
AncillaryControlPanel.ARMING_STAY,
):
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"state": {"panel": arming_event},
}
await mock_websocket_data(event_changed_sensor)
@ -194,10 +179,7 @@ async def test_alarm_control_panel(
AncillaryControlPanel.EXIT_DELAY,
):
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"state": {"panel": pending_event},
}
await mock_websocket_data(event_changed_sensor)
@ -210,10 +192,7 @@ async def test_alarm_control_panel(
# Event signals alarm control panel triggered
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"state": {"panel": AncillaryControlPanel.IN_ALARM},
}
await mock_websocket_data(event_changed_sensor)
@ -224,10 +203,7 @@ async def test_alarm_control_panel(
# Event signals alarm control panel unknown state keeps previous state
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"state": {"panel": AncillaryControlPanel.NOT_READY},
}
await mock_websocket_data(event_changed_sensor)

View file

@ -493,8 +493,6 @@ async def test_binary_sensors(
# Change state
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": expected["websocket_event"],
@ -607,7 +605,6 @@ async def test_add_new_binary_sensor(
assert len(hass.states.async_all()) == 0
event_added_sensor = {
"t": "event",
"e": "added",
"r": "sensors",
"id": "1",
@ -647,7 +644,6 @@ async def test_add_new_binary_sensor_ignored_load_entities_on_service_call(
"uniqueid": "00:00:00:00:00:00:00:00-00",
}
event_added_sensor = {
"t": "event",
"e": "added",
"r": "sensors",
"id": "1",
@ -701,7 +697,6 @@ async def test_add_new_binary_sensor_ignored_load_entities_on_options_change(
"uniqueid": "00:00:00:00:00:00:00:00-00",
}
event_added_sensor = {
"t": "event",
"e": "added",
"r": "sensors",
"id": "1",

View file

@ -113,10 +113,7 @@ async def test_simple_climate_device(
# Event signals thermostat configured off
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"state": {"on": False},
}
await mock_websocket_data(event_changed_sensor)
@ -131,10 +128,7 @@ async def test_simple_climate_device(
# Event signals thermostat state on
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"state": {"on": True},
}
await mock_websocket_data(event_changed_sensor)
@ -230,8 +224,6 @@ async def test_climate_device_without_cooling_support(
# Event signals thermostat configured off
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"config": {"mode": "off"},
@ -248,8 +240,6 @@ async def test_climate_device_without_cooling_support(
# Event signals thermostat state on
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"config": {"mode": "other"},
@ -267,8 +257,6 @@ async def test_climate_device_without_cooling_support(
# Event signals thermostat state off
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"on": False},
@ -420,10 +408,7 @@ async def test_climate_device_with_cooling_support(
# Event signals thermostat mode cool
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"config": {"mode": "cool"},
}
await mock_websocket_data(event_changed_sensor)
@ -439,10 +424,7 @@ async def test_climate_device_with_cooling_support(
# Event signals thermostat state on
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"state": {"on": True},
}
await mock_websocket_data(event_changed_sensor)
@ -528,10 +510,7 @@ async def test_climate_device_with_fan_support(
# Event signals fan mode defaults to off
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"config": {"fanmode": "unsupported"},
}
await mock_websocket_data(event_changed_sensor)
@ -545,10 +524,7 @@ async def test_climate_device_with_fan_support(
# Event signals unsupported fan mode
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"config": {"fanmode": "unsupported"},
"state": {"on": True},
}
@ -564,10 +540,7 @@ async def test_climate_device_with_fan_support(
# Event signals unsupported fan mode
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"config": {"fanmode": "unsupported"},
}
await mock_websocket_data(event_changed_sensor)
@ -677,10 +650,7 @@ async def test_climate_device_with_preset(
# Event signals deCONZ preset
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"config": {"preset": "manual"},
}
await mock_websocket_data(event_changed_sensor)
@ -694,10 +664,7 @@ async def test_climate_device_with_preset(
# Event signals unknown preset
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"config": {"preset": "unsupported"},
}
await mock_websocket_data(event_changed_sensor)
@ -837,8 +804,6 @@ async def test_verify_state_update(
)
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"on": False},
@ -860,7 +825,6 @@ async def test_add_new_climate_device(
) -> None:
"""Test that adding a new climate device works."""
event_added_sensor = {
"t": "event",
"e": "added",
"r": "sensors",
"id": "1",
@ -1011,10 +975,7 @@ async def test_boost_mode(
# Event signals thermostat preset boost and valve 100 (real data)
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
"config": {"preset": "boost"},
"state": {"valve": 100},
}

View file

@ -69,8 +69,6 @@ async def test_cover(
# Event signals cover is open
event_changed_light = {
"t": "event",
"e": "changed",
"r": "lights",
"id": "1",
"state": {"lift": 0, "open": True},

View file

@ -99,8 +99,6 @@ async def test_deconz_events(
captured_events = async_capture_events(hass, CONF_DECONZ_EVENT)
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"buttonevent": 2000},
@ -121,8 +119,6 @@ async def test_deconz_events(
}
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "3",
"state": {"buttonevent": 2000},
@ -144,8 +140,6 @@ async def test_deconz_events(
}
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "4",
"state": {"gesture": 0},
@ -167,8 +161,6 @@ async def test_deconz_events(
}
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "5",
"state": {"buttonevent": 6002, "angle": 110, "xy": [0.5982, 0.3897]},
@ -193,8 +185,6 @@ async def test_deconz_events(
# Unsupported event
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"name": "other name",
@ -305,8 +295,6 @@ async def test_deconz_alarm_events(
# Emergency event
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"action": AncillaryControlAction.EMERGENCY},
@ -329,8 +317,6 @@ async def test_deconz_alarm_events(
# Fire event
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"action": AncillaryControlAction.FIRE},
@ -353,8 +339,6 @@ async def test_deconz_alarm_events(
# Invalid code event
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"action": AncillaryControlAction.INVALID_CODE},
@ -377,8 +361,6 @@ async def test_deconz_alarm_events(
# Panic event
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"action": AncillaryControlAction.PANIC},
@ -401,8 +383,6 @@ async def test_deconz_alarm_events(
# Only care for changes to specific action events
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"action": AncillaryControlAction.ARMED_AWAY},
@ -415,8 +395,6 @@ async def test_deconz_alarm_events(
# Only care for action events
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"panel": AncillaryControlPanel.ARMED_AWAY},
@ -502,8 +480,6 @@ async def test_deconz_presence_events(
PresenceStatePresenceEvent.RIGHT_LEAVE,
):
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"presenceevent": presence_event},
@ -523,8 +499,6 @@ async def test_deconz_presence_events(
# Unsupported presence event
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"presenceevent": PresenceStatePresenceEvent.NINE},
@ -600,8 +574,6 @@ async def test_deconz_relative_rotary_events(
for rotary_event, duration, rotation in ((1, 100, 50), (2, 200, -50)):
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {
@ -627,8 +599,6 @@ async def test_deconz_relative_rotary_events(
# Unsupported relative rotary event
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"name": "123",

View file

@ -352,8 +352,6 @@ async def test_functional_device_trigger(
assert len(hass.states.async_entity_ids(AUTOMATION_DOMAIN)) == 1
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"buttonevent": 1002},

View file

@ -59,8 +59,6 @@ async def test_fans(
# Test states
event_changed_light = {
"t": "event",
"e": "changed",
"r": "lights",
"id": "1",
"state": {"speed": 1},
@ -72,8 +70,6 @@ async def test_fans(
assert hass.states.get("fan.ceiling_fan").attributes[ATTR_PERCENTAGE] == 25
event_changed_light = {
"t": "event",
"e": "changed",
"r": "lights",
"id": "1",
"state": {"speed": 2},
@ -85,8 +81,6 @@ async def test_fans(
assert hass.states.get("fan.ceiling_fan").attributes[ATTR_PERCENTAGE] == 50
event_changed_light = {
"t": "event",
"e": "changed",
"r": "lights",
"id": "1",
"state": {"speed": 3},
@ -98,8 +92,6 @@ async def test_fans(
assert hass.states.get("fan.ceiling_fan").attributes[ATTR_PERCENTAGE] == 75
event_changed_light = {
"t": "event",
"e": "changed",
"r": "lights",
"id": "1",
"state": {"speed": 4},
@ -111,8 +103,6 @@ async def test_fans(
assert hass.states.get("fan.ceiling_fan").attributes[ATTR_PERCENTAGE] == 100
event_changed_light = {
"t": "event",
"e": "changed",
"r": "lights",
"id": "1",
"state": {"speed": 0},
@ -210,8 +200,6 @@ async def test_fans(
# Events with an unsupported speed does not get converted
event_changed_light = {
"t": "event",
"e": "changed",
"r": "lights",
"id": "1",
"state": {"speed": 5},

View file

@ -479,10 +479,7 @@ async def test_light_state_change(
assert hass.states.get("light.hue_go").state == STATE_ON
event_changed_light = {
"t": "event",
"e": "changed",
"r": "lights",
"id": "0",
"state": {"on": False},
}
await mock_websocket_data(event_changed_light)
@ -1321,7 +1318,6 @@ async def test_non_color_light_reports_color(
# Updating a scene will return a faulty color value
# for a non-color light causing an exception in hs_color
event_changed_light = {
"e": "changed",
"id": "1",
"r": "lights",
"state": {
@ -1332,7 +1328,6 @@ async def test_non_color_light_reports_color(
"on": True,
"reachable": True,
},
"t": "event",
"uniqueid": "ec:1b:bd:ff:fe:ee:ed:dd-01",
}
await mock_websocket_data(event_changed_light)
@ -1524,7 +1519,6 @@ async def test_verify_group_color_mode_fallback(
await mock_websocket_data(
{
"e": "changed",
"id": "13",
"r": "lights",
"state": {
@ -1534,17 +1528,14 @@ async def test_verify_group_color_mode_fallback(
"on": True,
"reachable": True,
},
"t": "event",
"uniqueid": "00:17:88:01:08:11:22:33-01",
}
)
await mock_websocket_data(
{
"e": "changed",
"id": "43",
"r": "groups",
"state": {"all_on": True, "any_on": True},
"t": "event",
}
)
group_state = hass.states.get("light.opbergruimte")

View file

@ -54,8 +54,6 @@ async def test_lock_from_light(
assert hass.states.get("lock.door_lock").state == STATE_UNLOCKED
event_changed_light = {
"t": "event",
"e": "changed",
"r": "lights",
"id": "1",
"state": {"on": True},
@ -140,8 +138,6 @@ async def test_lock_from_sensor(
assert hass.states.get("lock.door_lock").state == STATE_UNLOCKED
event_changed_light = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",
"state": {"lockstate": "locked"},

View file

@ -138,12 +138,7 @@ async def test_number_entities(
# Change state
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "0",
} | expected["websocket_event"]
event_changed_sensor = {"r": "sensors"} | expected["websocket_event"]
await mock_websocket_data(event_changed_sensor)
await hass.async_block_till_done()
assert hass.states.get(expected["entity_id"]).state == expected["next_state"]

View file

@ -126,8 +126,6 @@ async def test_only_new_scenes_are_created(
assert len(hass.states.async_all()) == 2
event_changed_group = {
"t": "event",
"e": "changed",
"r": "groups",
"id": "1",
"scenes": [{"id": "1", "name": "Scene"}],

View file

@ -952,7 +952,7 @@ async def test_sensors(
# Change state
event_changed_sensor = {"t": "event", "e": "changed", "r": "sensors", "id": "1"}
event_changed_sensor = {"r": "sensors", "id": "1"}
event_changed_sensor |= expected["websocket_event"]
await mock_websocket_data(event_changed_sensor)
await hass.async_block_till_done()
@ -1063,7 +1063,6 @@ async def test_add_new_sensor(
) -> None:
"""Test that adding a new sensor works."""
event_added_sensor = {
"t": "event",
"e": "added",
"r": "sensors",
"id": "1",
@ -1183,7 +1182,6 @@ async def test_add_battery_later(
assert len(hass.states.async_all()) == 0
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "2",
@ -1195,7 +1193,6 @@ async def test_add_battery_later(
assert len(hass.states.async_all()) == 0
event_changed_sensor = {
"t": "event",
"e": "changed",
"r": "sensors",
"id": "1",

View file

@ -52,8 +52,6 @@ async def test_sirens(
assert not hass.states.get("siren.unsupported_siren")
event_changed_light = {
"t": "event",
"e": "changed",
"r": "lights",
"id": "1",
"state": {"alert": None},

View file

@ -66,8 +66,6 @@ async def test_power_plugs(
assert hass.states.get("switch.unsupported_switch") is None
event_changed_light = {
"t": "event",
"e": "changed",
"r": "lights",
"id": "1",
"state": {"on": False},