mirror of
https://github.com/home-assistant/core.git
synced 2026-05-04 11:54:35 +02:00
Add test for full device snapshot for Shelly Wall Display XL (#153305)
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
"""Tests for the Shelly integration."""
|
||||
|
||||
from collections.abc import Mapping
|
||||
from collections.abc import Mapping, Sequence
|
||||
from copy import deepcopy
|
||||
from datetime import timedelta
|
||||
from typing import Any
|
||||
@@ -10,6 +10,7 @@ from aioshelly.const import MODEL_25
|
||||
from freezegun.api import FrozenDateTimeFactory
|
||||
import pytest
|
||||
from syrupy.assertion import SnapshotAssertion
|
||||
from syrupy.filters import props
|
||||
|
||||
from homeassistant.components.shelly.const import (
|
||||
CONF_GEN,
|
||||
@@ -173,15 +174,27 @@ async def snapshot_device_entities(
|
||||
config_entry_id: str,
|
||||
) -> None:
|
||||
"""Snapshot all device entities."""
|
||||
|
||||
def sort_event_types(data: Any, path: Sequence[tuple[str, Any]]) -> Any:
|
||||
"""Sort the event_types list for event entity."""
|
||||
if path and path[-1][0] == "event_types" and isinstance(data, list):
|
||||
return sorted(data)
|
||||
|
||||
return data
|
||||
|
||||
entity_entries = er.async_entries_for_config_entry(entity_registry, config_entry_id)
|
||||
assert entity_entries
|
||||
|
||||
for entity_entry in entity_entries:
|
||||
assert entity_entry == snapshot(name=f"{entity_entry.entity_id}-entry")
|
||||
assert entity_entry == snapshot(
|
||||
name=f"{entity_entry.entity_id}-entry", exclude=props("event_types")
|
||||
)
|
||||
assert entity_entry.disabled_by is None, "Please enable all entities."
|
||||
state = hass.states.get(entity_entry.entity_id)
|
||||
assert state, f"State not found for {entity_entry.entity_id}"
|
||||
assert state == snapshot(name=f"{entity_entry.entity_id}-state")
|
||||
assert state == snapshot(
|
||||
name=f"{entity_entry.entity_id}-state", matcher=sort_event_types
|
||||
)
|
||||
|
||||
|
||||
async def force_uptime_value(
|
||||
|
||||
@@ -0,0 +1,307 @@
|
||||
{
|
||||
"config": {
|
||||
"ble": {
|
||||
"enable": false,
|
||||
"keep_running": true,
|
||||
"rpc": {
|
||||
"enable": true
|
||||
},
|
||||
"observer": {
|
||||
"enable": false
|
||||
}
|
||||
},
|
||||
"wifi": {
|
||||
"sta": {
|
||||
"enable": true,
|
||||
"ssid": "Wifi-Network-Name",
|
||||
"roam_interval": 900,
|
||||
"is_open": false,
|
||||
"ipv4mode": "dhcp",
|
||||
"ip": "192.168.2.81",
|
||||
"netmask": "255.255.255.0",
|
||||
"gw": "192.168.2.1",
|
||||
"nameserver": "192.168.2.1"
|
||||
}
|
||||
},
|
||||
"switch:0": {
|
||||
"in_mode": "detached",
|
||||
"id": 0,
|
||||
"auto_off": false,
|
||||
"auto_on_delay": 0,
|
||||
"initial_state": "off",
|
||||
"name": null
|
||||
},
|
||||
"input:0": {
|
||||
"type": "button",
|
||||
"id": 0,
|
||||
"invert": false,
|
||||
"factory_reset": true,
|
||||
"name": null
|
||||
},
|
||||
"input:1": {
|
||||
"id": 1,
|
||||
"type": "switch",
|
||||
"invert": false,
|
||||
"factory_reset": true,
|
||||
"name": null
|
||||
},
|
||||
"input:2": {
|
||||
"id": 2,
|
||||
"type": "switch",
|
||||
"invert": false,
|
||||
"factory_reset": true,
|
||||
"name": null
|
||||
},
|
||||
"input:3": {
|
||||
"id": 3,
|
||||
"type": "button",
|
||||
"invert": false,
|
||||
"factory_reset": true,
|
||||
"name": null
|
||||
},
|
||||
"input:4": {
|
||||
"id": 4,
|
||||
"type": "button",
|
||||
"invert": false,
|
||||
"factory_reset": true,
|
||||
"name": null
|
||||
},
|
||||
"temperature:0": {
|
||||
"id": 0,
|
||||
"report_thr_C": 1,
|
||||
"offset_C": 0,
|
||||
"name": null
|
||||
},
|
||||
"humidity:0": {
|
||||
"id": 0,
|
||||
"report_thr": 1,
|
||||
"offset": 0,
|
||||
"name": null
|
||||
},
|
||||
"illuminance:0": {
|
||||
"id": 0,
|
||||
"bright_thr": 200,
|
||||
"dark_thr": 30,
|
||||
"name": null
|
||||
},
|
||||
"ui": {
|
||||
"lock_type": "none",
|
||||
"disable_gestures_when_locked": false,
|
||||
"use_F": false,
|
||||
"screen_saver": {
|
||||
"enable": false,
|
||||
"timeout": 20,
|
||||
"priority_element": "CLOCK"
|
||||
},
|
||||
"screen_off_when_idle": false,
|
||||
"brightness": {
|
||||
"auto": true,
|
||||
"level": 70,
|
||||
"auto_off": {
|
||||
"enable": false,
|
||||
"by_lux": false
|
||||
}
|
||||
},
|
||||
"relay_state_overlay": {
|
||||
"enable": true,
|
||||
"always_visible": false
|
||||
}
|
||||
},
|
||||
"sys": {
|
||||
"cfg_rev": 50,
|
||||
"device": {
|
||||
"fw_id": "20250923-131544/2.4.4-5c68f1d6",
|
||||
"mac": "AABBCCDDEEFF",
|
||||
"discoverable": false,
|
||||
"name": null
|
||||
},
|
||||
"location": {
|
||||
"tz": "Europe/Brussels",
|
||||
"lat": 99.8888,
|
||||
"lon": 22.3333
|
||||
},
|
||||
"sntp": {
|
||||
"server": "time.google.com"
|
||||
},
|
||||
"debug": {
|
||||
"websocket": {
|
||||
"enable": false
|
||||
},
|
||||
"mqtt": {
|
||||
"enable": false
|
||||
},
|
||||
"logs": {
|
||||
"Generic": true,
|
||||
"Bluetooth": true,
|
||||
"Cloud": true,
|
||||
"Interface": true,
|
||||
"Media": true,
|
||||
"MQTT": true,
|
||||
"Network": true,
|
||||
"RPC": true,
|
||||
"Thermostat": true,
|
||||
"Screen": true,
|
||||
"ShellySmartControl": true,
|
||||
"Webhooks": true,
|
||||
"WebSocket": true
|
||||
}
|
||||
},
|
||||
"media_player_enabled": true
|
||||
},
|
||||
"cloud": {
|
||||
"server": "shelly-105-eu.shelly.cloud:6022/jrpc",
|
||||
"enable": true
|
||||
},
|
||||
"mqtt": {
|
||||
"enable": false,
|
||||
"client_id": "ShellyWallDisplay-AABBCCDDEEFF",
|
||||
"topic_prefix": "ShellyWallDisplay-AABBCCDDEEFF"
|
||||
},
|
||||
"ws": {
|
||||
"enable": false,
|
||||
"ssl_ca": "ca.pem"
|
||||
},
|
||||
"media": {
|
||||
"rev": 0
|
||||
}
|
||||
},
|
||||
"shelly": {
|
||||
"id": "ShellyWallDisplay-AABBCCDDEEFF",
|
||||
"mac": "AABBCCDDEEFF",
|
||||
"model": "SAWD-3A1XE10EU2",
|
||||
"gen": 2,
|
||||
"fw_id": "20250923-131544/2.4.4-5c68f1d6",
|
||||
"ver": "2.4.4",
|
||||
"app": "WallDisplayV2",
|
||||
"auth_en": false,
|
||||
"uptime": 930619,
|
||||
"app_uptime": 61029,
|
||||
"ram_size": 268435456,
|
||||
"ram_free": 50023040,
|
||||
"fs_size": 24480665600,
|
||||
"fs_free": 24071430144,
|
||||
"discoverable": false,
|
||||
"cfg_rev": 50,
|
||||
"schedule_rev": 0,
|
||||
"webhook_rev": 22,
|
||||
"platform": "vBlake.a21b392",
|
||||
"serial": "ABCDFE5674",
|
||||
"batch_id": "3d35b",
|
||||
"batch_date": 250715,
|
||||
"available_updates": {},
|
||||
"restart_required": false,
|
||||
"unixtime": 1759216204,
|
||||
"relay_in_thermostat": false,
|
||||
"sensor_in_thermostat": false,
|
||||
"awaiting_auth_code": false,
|
||||
"ch": ["switch:0"]
|
||||
},
|
||||
"status": {
|
||||
"ble": {},
|
||||
"cloud": {
|
||||
"connected": true
|
||||
},
|
||||
"mqtt": {
|
||||
"connected": false
|
||||
},
|
||||
"temperature:0": {
|
||||
"id": 0,
|
||||
"tC": -275.1499938964844,
|
||||
"tF": -463.2,
|
||||
"errors": ["Sensor driver missing from firmware"]
|
||||
},
|
||||
"humidity:0": {
|
||||
"id": 0,
|
||||
"rh": -2,
|
||||
"errors": ["Sensor driver missing from firmware"]
|
||||
},
|
||||
"illuminance:0": {
|
||||
"id": 0,
|
||||
"lux": 120,
|
||||
"illumination": "twilight"
|
||||
},
|
||||
"switch:0": {
|
||||
"id": 0,
|
||||
"output": true,
|
||||
"source": "RPC Set"
|
||||
},
|
||||
"input:0": {
|
||||
"id": 0,
|
||||
"state": false
|
||||
},
|
||||
"input:1": {
|
||||
"id": 1
|
||||
},
|
||||
"input:2": {
|
||||
"id": 2,
|
||||
"state": true
|
||||
},
|
||||
"input:3": {
|
||||
"id": 3
|
||||
},
|
||||
"input:4": {
|
||||
"id": 4
|
||||
},
|
||||
"sys": {
|
||||
"id": "ShellyWallDisplay-AABBCCDDEEFF",
|
||||
"mac": "AABBCCDDEEFF",
|
||||
"model": "SAWD-3A1XE10EU2",
|
||||
"gen": 2,
|
||||
"fw_id": "20250923-131544/2.4.4-5c68f1d6",
|
||||
"ver": "2.4.4",
|
||||
"app": "WallDisplayV2",
|
||||
"auth_en": false,
|
||||
"uptime": 930619,
|
||||
"app_uptime": 61029,
|
||||
"ram_size": 268435456,
|
||||
"ram_free": 50023040,
|
||||
"fs_size": 24480665600,
|
||||
"fs_free": 24071430144,
|
||||
"discoverable": false,
|
||||
"cfg_rev": 50,
|
||||
"schedule_rev": 0,
|
||||
"webhook_rev": 22,
|
||||
"platform": "vBlake.a21b392",
|
||||
"serial": "SAWD9570149AV",
|
||||
"batch_id": "3d35b",
|
||||
"batch_date": 250715,
|
||||
"available_updates": {},
|
||||
"restart_required": false,
|
||||
"unixtime": 1759216205,
|
||||
"relay_in_thermostat": false,
|
||||
"sensor_in_thermostat": false,
|
||||
"awaiting_auth_code": false,
|
||||
"ch": ["switch:0"]
|
||||
},
|
||||
"wifi": {
|
||||
"sta_ip": "192.168.2.81",
|
||||
"status": "got ip",
|
||||
"mac": "00:A9:0B:70:14:9A",
|
||||
"ssid": "Wifi-Network-Name",
|
||||
"rssi": -48,
|
||||
"netmask": "255.255.255.0",
|
||||
"gw": "192.168.2.1",
|
||||
"nameserver": "192.168.2.1"
|
||||
},
|
||||
"media": {
|
||||
"playback": {
|
||||
"enable": false,
|
||||
"buffering": false,
|
||||
"volume": 7
|
||||
},
|
||||
"total_size": 3885854,
|
||||
"total_size_h": "3.706 MB",
|
||||
"item_counts": {
|
||||
"audio": 0,
|
||||
"photo": 0,
|
||||
"video": 0
|
||||
}
|
||||
},
|
||||
"devicepower:0": {
|
||||
"id": 0,
|
||||
"external": {
|
||||
"present": true
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -5043,3 +5043,922 @@
|
||||
'state': 'off',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[binary_sensor.test_name_cloud-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'binary_sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'binary_sensor.test_name_cloud',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <BinarySensorDeviceClass.CONNECTIVITY: 'connectivity'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Cloud',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-cloud-cloud',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[binary_sensor.test_name_cloud-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'connectivity',
|
||||
'friendly_name': 'Test name Cloud',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'binary_sensor.test_name_cloud',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'on',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[binary_sensor.test_name_external_power-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'binary_sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'binary_sensor.test_name_external_power',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <BinarySensorDeviceClass.POWER: 'power'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'External power',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-devicepower:0-external_power',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[binary_sensor.test_name_external_power-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'power',
|
||||
'friendly_name': 'Test name External power',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'binary_sensor.test_name_external_power',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'on',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[binary_sensor.test_name_input_2-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'binary_sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'binary_sensor.test_name_input_2',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <BinarySensorDeviceClass.POWER: 'power'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Input 2',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-input:2-input',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[binary_sensor.test_name_input_2-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'power',
|
||||
'friendly_name': 'Test name Input 2',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'binary_sensor.test_name_input_2',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'on',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[binary_sensor.test_name_restart_required-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'binary_sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'binary_sensor.test_name_restart_required',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <BinarySensorDeviceClass.PROBLEM: 'problem'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Restart required',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-sys-restart',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[binary_sensor.test_name_restart_required-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'problem',
|
||||
'friendly_name': 'Test name Restart required',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'binary_sensor.test_name_restart_required',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'off',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[button.test_name_reboot-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'button',
|
||||
'entity_category': <EntityCategory.CONFIG: 'config'>,
|
||||
'entity_id': 'button.test_name_reboot',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <ButtonDeviceClass.RESTART: 'restart'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Reboot',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-reboot',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[button.test_name_reboot-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'restart',
|
||||
'friendly_name': 'Test name Reboot',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'button.test_name_reboot',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[event.test_name_input_0-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'event',
|
||||
'entity_category': None,
|
||||
'entity_id': 'event.test_name_input_0',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <EventDeviceClass.BUTTON: 'button'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Input 0',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'input',
|
||||
'unique_id': '123456789ABC-input:0',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[event.test_name_input_0-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'button',
|
||||
'event_type': None,
|
||||
'event_types': list([
|
||||
'btn_down',
|
||||
'btn_up',
|
||||
'double_push',
|
||||
'long_push',
|
||||
'single_push',
|
||||
'triple_push',
|
||||
]),
|
||||
'friendly_name': 'Test name Input 0',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'event.test_name_input_0',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[event.test_name_input_3-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'event',
|
||||
'entity_category': None,
|
||||
'entity_id': 'event.test_name_input_3',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <EventDeviceClass.BUTTON: 'button'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Input 3',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'input',
|
||||
'unique_id': '123456789ABC-input:3',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[event.test_name_input_3-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'button',
|
||||
'event_type': None,
|
||||
'event_types': list([
|
||||
'btn_down',
|
||||
'btn_up',
|
||||
'double_push',
|
||||
'long_push',
|
||||
'single_push',
|
||||
'triple_push',
|
||||
]),
|
||||
'friendly_name': 'Test name Input 3',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'event.test_name_input_3',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[event.test_name_input_4-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'event',
|
||||
'entity_category': None,
|
||||
'entity_id': 'event.test_name_input_4',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <EventDeviceClass.BUTTON: 'button'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Input 4',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'input',
|
||||
'unique_id': '123456789ABC-input:4',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[event.test_name_input_4-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'button',
|
||||
'event_type': None,
|
||||
'event_types': list([
|
||||
'btn_down',
|
||||
'btn_up',
|
||||
'double_push',
|
||||
'long_push',
|
||||
'single_push',
|
||||
'triple_push',
|
||||
]),
|
||||
'friendly_name': 'Test name Input 4',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'event.test_name_input_4',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'unknown',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_humidity-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.test_name_humidity',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
'sensor': dict({
|
||||
'suggested_display_precision': 1,
|
||||
}),
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.HUMIDITY: 'humidity'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Humidity',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-humidity:0-humidity_0',
|
||||
'unit_of_measurement': '%',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_humidity-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'humidity',
|
||||
'friendly_name': 'Test name Humidity',
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': '%',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.test_name_humidity',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '-2',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_illuminance-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.test_name_illuminance',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.ILLUMINANCE: 'illuminance'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Illuminance',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-illuminance:0-illuminance',
|
||||
'unit_of_measurement': 'lx',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_illuminance-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'illuminance',
|
||||
'friendly_name': 'Test name Illuminance',
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': 'lx',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.test_name_illuminance',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '120',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_illuminance_level-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'options': list([
|
||||
'dark',
|
||||
'twilight',
|
||||
'bright',
|
||||
]),
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.test_name_illuminance_level',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.ENUM: 'enum'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Illuminance level',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': 'illuminance_level',
|
||||
'unique_id': '123456789ABC-illuminance:0-illuminance_illumination',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_illuminance_level-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'enum',
|
||||
'friendly_name': 'Test name Illuminance level',
|
||||
'options': list([
|
||||
'dark',
|
||||
'twilight',
|
||||
'bright',
|
||||
]),
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.test_name_illuminance_level',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'twilight',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_rssi-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.test_name_rssi',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.SIGNAL_STRENGTH: 'signal_strength'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'RSSI',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-wifi-rssi',
|
||||
'unit_of_measurement': 'dBm',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_rssi-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'signal_strength',
|
||||
'friendly_name': 'Test name RSSI',
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': 'dBm',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.test_name_rssi',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '-48',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_temperature-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': dict({
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
}),
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': None,
|
||||
'entity_id': 'sensor.test_name_temperature',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
'sensor': dict({
|
||||
'suggested_display_precision': 1,
|
||||
}),
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.TEMPERATURE: 'temperature'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Temperature',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-temperature:0-temperature_0',
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_temperature-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'temperature',
|
||||
'friendly_name': 'Test name Temperature',
|
||||
'state_class': <SensorStateClass.MEASUREMENT: 'measurement'>,
|
||||
'unit_of_measurement': <UnitOfTemperature.CELSIUS: '°C'>,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.test_name_temperature',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '-275.149993896484',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_uptime-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'sensor',
|
||||
'entity_category': <EntityCategory.DIAGNOSTIC: 'diagnostic'>,
|
||||
'entity_id': 'sensor.test_name_uptime',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <SensorDeviceClass.TIMESTAMP: 'timestamp'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Uptime',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-sys-uptime',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[sensor.test_name_uptime-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'device_class': 'timestamp',
|
||||
'friendly_name': 'Test name Uptime',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'sensor.test_name_uptime',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': '2025-05-15T21:33:41+00:00',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[switch.test_name-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'switch',
|
||||
'entity_category': None,
|
||||
'entity_id': 'switch.test_name',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': None,
|
||||
'original_icon': None,
|
||||
'original_name': None,
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': 0,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-switch:0',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[switch.test_name-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'friendly_name': 'Test name',
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'switch.test_name',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'on',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[update.test_name_beta_firmware-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'update',
|
||||
'entity_category': <EntityCategory.CONFIG: 'config'>,
|
||||
'entity_id': 'update.test_name_beta_firmware',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <UpdateDeviceClass.FIRMWARE: 'firmware'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Beta firmware',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': <UpdateEntityFeature: 5>,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-sys-fwupdate_beta',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[update.test_name_beta_firmware-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'auto_update': False,
|
||||
'device_class': 'firmware',
|
||||
'display_precision': 0,
|
||||
'entity_picture': 'https://brands.home-assistant.io/_/shelly/icon.png',
|
||||
'friendly_name': 'Test name Beta firmware',
|
||||
'in_progress': False,
|
||||
'installed_version': '2.4.4',
|
||||
'latest_version': '2.4.4',
|
||||
'release_summary': None,
|
||||
'release_url': 'https://shelly-api-docs.shelly.cloud/gen2/changelog/#unreleased',
|
||||
'skipped_version': None,
|
||||
'supported_features': <UpdateEntityFeature: 5>,
|
||||
'title': None,
|
||||
'update_percentage': None,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'update.test_name_beta_firmware',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'off',
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[update.test_name_firmware-entry]
|
||||
EntityRegistryEntrySnapshot({
|
||||
'aliases': set({
|
||||
}),
|
||||
'area_id': None,
|
||||
'capabilities': None,
|
||||
'config_entry_id': <ANY>,
|
||||
'config_subentry_id': <ANY>,
|
||||
'device_class': None,
|
||||
'device_id': <ANY>,
|
||||
'disabled_by': None,
|
||||
'domain': 'update',
|
||||
'entity_category': <EntityCategory.CONFIG: 'config'>,
|
||||
'entity_id': 'update.test_name_firmware',
|
||||
'has_entity_name': True,
|
||||
'hidden_by': None,
|
||||
'icon': None,
|
||||
'id': <ANY>,
|
||||
'labels': set({
|
||||
}),
|
||||
'name': None,
|
||||
'options': dict({
|
||||
}),
|
||||
'original_device_class': <UpdateDeviceClass.FIRMWARE: 'firmware'>,
|
||||
'original_icon': None,
|
||||
'original_name': 'Firmware',
|
||||
'platform': 'shelly',
|
||||
'previous_unique_id': None,
|
||||
'suggested_object_id': None,
|
||||
'supported_features': <UpdateEntityFeature: 5>,
|
||||
'translation_key': None,
|
||||
'unique_id': '123456789ABC-sys-fwupdate',
|
||||
'unit_of_measurement': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_wall_display_xl[update.test_name_firmware-state]
|
||||
StateSnapshot({
|
||||
'attributes': ReadOnlyDict({
|
||||
'auto_update': False,
|
||||
'device_class': 'firmware',
|
||||
'display_precision': 0,
|
||||
'entity_picture': 'https://brands.home-assistant.io/_/shelly/icon.png',
|
||||
'friendly_name': 'Test name Firmware',
|
||||
'in_progress': False,
|
||||
'installed_version': '2.4.4',
|
||||
'latest_version': '2.4.4',
|
||||
'release_summary': None,
|
||||
'release_url': 'https://shelly-api-docs.shelly.cloud/gen2/changelog/',
|
||||
'skipped_version': None,
|
||||
'supported_features': <UpdateEntityFeature: 5>,
|
||||
'title': None,
|
||||
'update_percentage': None,
|
||||
}),
|
||||
'context': <ANY>,
|
||||
'entity_id': 'update.test_name_firmware',
|
||||
'last_changed': <ANY>,
|
||||
'last_reported': <ANY>,
|
||||
'last_updated': <ANY>,
|
||||
'state': 'off',
|
||||
})
|
||||
# ---
|
||||
|
||||
@@ -2,7 +2,12 @@
|
||||
|
||||
from unittest.mock import Mock
|
||||
|
||||
from aioshelly.const import MODEL_2PM_G3, MODEL_BLU_GATEWAY_G3, MODEL_PRO_EM3
|
||||
from aioshelly.const import (
|
||||
MODEL_2PM_G3,
|
||||
MODEL_BLU_GATEWAY_G3,
|
||||
MODEL_PRO_EM3,
|
||||
MODEL_WALL_DISPLAY_XL,
|
||||
)
|
||||
from freezegun.api import FrozenDateTimeFactory
|
||||
import pytest
|
||||
from syrupy.assertion import SnapshotAssertion
|
||||
@@ -529,3 +534,29 @@ async def test_blu_trv_device_info(
|
||||
assert device_entry.name == "TRV-Name"
|
||||
assert device_entry.model_id == "SBTR-001AEU"
|
||||
assert device_entry.sw_version == "v1.2.10"
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("entity_registry_enabled_by_default")
|
||||
async def test_wall_display_xl(
|
||||
hass: HomeAssistant,
|
||||
mock_rpc_device: Mock,
|
||||
entity_registry: EntityRegistry,
|
||||
snapshot: SnapshotAssertion,
|
||||
monkeypatch: pytest.MonkeyPatch,
|
||||
freezer: FrozenDateTimeFactory,
|
||||
) -> None:
|
||||
"""Test Wall Display XL."""
|
||||
device_fixture = await async_load_json_object_fixture(
|
||||
hass, "wall_display_xl.json", DOMAIN
|
||||
)
|
||||
monkeypatch.setattr(mock_rpc_device, "shelly", device_fixture["shelly"])
|
||||
monkeypatch.setattr(mock_rpc_device, "status", device_fixture["status"])
|
||||
monkeypatch.setattr(mock_rpc_device, "config", device_fixture["config"])
|
||||
|
||||
await force_uptime_value(hass, freezer)
|
||||
|
||||
config_entry = await init_integration(hass, gen=2, model=MODEL_WALL_DISPLAY_XL)
|
||||
|
||||
await snapshot_device_entities(
|
||||
hass, entity_registry, snapshot, config_entry.entry_id
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user