mirror of
https://github.com/home-assistant/core.git
synced 2025-07-20 03:37:07 +00:00
Add snapshot assertion to Airzone cloud (#98761)
This commit is contained in:
parent
a89c0c944a
commit
d4b49726f4
231
tests/components/airzone_cloud/snapshots/test_diagnostics.ambr
Normal file
231
tests/components/airzone_cloud/snapshots/test_diagnostics.ambr
Normal file
@ -0,0 +1,231 @@
|
|||||||
|
# serializer version: 1
|
||||||
|
# name: test_config_entry_diagnostics
|
||||||
|
dict({
|
||||||
|
'api_data': dict({
|
||||||
|
'devices-config': dict({
|
||||||
|
'device1': dict({
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'devices-status': dict({
|
||||||
|
'device1': dict({
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'installations': dict({
|
||||||
|
'installation1': dict({
|
||||||
|
'groups': list([
|
||||||
|
dict({
|
||||||
|
'devices': list([
|
||||||
|
dict({
|
||||||
|
'device_id': 'device1',
|
||||||
|
'ws_id': 'webserver1',
|
||||||
|
}),
|
||||||
|
]),
|
||||||
|
'group_id': 'group1',
|
||||||
|
}),
|
||||||
|
]),
|
||||||
|
'plugins': dict({
|
||||||
|
'schedules': dict({
|
||||||
|
'calendar_ws_ids': list([
|
||||||
|
'webserver1',
|
||||||
|
]),
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'installations-list': dict({
|
||||||
|
}),
|
||||||
|
'test_cov': dict({
|
||||||
|
'1': None,
|
||||||
|
'2': list([
|
||||||
|
'foo',
|
||||||
|
'bar',
|
||||||
|
]),
|
||||||
|
'3': list([
|
||||||
|
list([
|
||||||
|
'foo',
|
||||||
|
'bar',
|
||||||
|
]),
|
||||||
|
]),
|
||||||
|
}),
|
||||||
|
'webservers': dict({
|
||||||
|
'webserver1': dict({
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'config_entry': dict({
|
||||||
|
'data': dict({
|
||||||
|
'id': 'installation1',
|
||||||
|
'password': '**REDACTED**',
|
||||||
|
'username': '**REDACTED**',
|
||||||
|
}),
|
||||||
|
'disabled_by': None,
|
||||||
|
'domain': 'airzone_cloud',
|
||||||
|
'entry_id': 'd186e31edb46d64d14b9b2f11f1ebd9f',
|
||||||
|
'options': dict({
|
||||||
|
}),
|
||||||
|
'pref_disable_new_entities': False,
|
||||||
|
'pref_disable_polling': False,
|
||||||
|
'source': 'user',
|
||||||
|
'title': 'Mock Title',
|
||||||
|
'unique_id': 'installation1',
|
||||||
|
'version': 1,
|
||||||
|
}),
|
||||||
|
'coord_data': dict({
|
||||||
|
'aidoos': dict({
|
||||||
|
'aidoo1': dict({
|
||||||
|
'action': 6,
|
||||||
|
'active': False,
|
||||||
|
'available': True,
|
||||||
|
'id': 'aidoo1',
|
||||||
|
'installation': 'installation1',
|
||||||
|
'is-connected': True,
|
||||||
|
'mode': None,
|
||||||
|
'name': 'Bron',
|
||||||
|
'power': None,
|
||||||
|
'problems': False,
|
||||||
|
'temperature': 21.0,
|
||||||
|
'temperature-step': 0.5,
|
||||||
|
'web-server': '11:22:33:44:55:67',
|
||||||
|
'ws-connected': True,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'groups': dict({
|
||||||
|
'group1': dict({
|
||||||
|
'action': 6,
|
||||||
|
'active': True,
|
||||||
|
'available': True,
|
||||||
|
'humidity': 27,
|
||||||
|
'installation': 'installation1',
|
||||||
|
'mode': 0,
|
||||||
|
'name': 'Group',
|
||||||
|
'num-devices': 2,
|
||||||
|
'power': None,
|
||||||
|
'systems': list([
|
||||||
|
'system1',
|
||||||
|
]),
|
||||||
|
'temperature': 22.5,
|
||||||
|
'temperature-step': 0.5,
|
||||||
|
'zones': list([
|
||||||
|
'zone1',
|
||||||
|
'zone2',
|
||||||
|
]),
|
||||||
|
}),
|
||||||
|
'grp2': dict({
|
||||||
|
'action': 6,
|
||||||
|
'active': False,
|
||||||
|
'aidoos': list([
|
||||||
|
'aidoo1',
|
||||||
|
]),
|
||||||
|
'available': True,
|
||||||
|
'installation': 'installation1',
|
||||||
|
'mode': 0,
|
||||||
|
'name': 'Aidoo Group',
|
||||||
|
'num-devices': 1,
|
||||||
|
'power': None,
|
||||||
|
'temperature': 21.0,
|
||||||
|
'temperature-step': 0.5,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'installations': dict({
|
||||||
|
'installation1': dict({
|
||||||
|
'id': 'installation1',
|
||||||
|
'name': 'House',
|
||||||
|
'web-servers': list([
|
||||||
|
'webserver1',
|
||||||
|
'11:22:33:44:55:67',
|
||||||
|
]),
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'systems': dict({
|
||||||
|
'system1': dict({
|
||||||
|
'available': True,
|
||||||
|
'id': 'system1',
|
||||||
|
'installation': 'installation1',
|
||||||
|
'is-connected': True,
|
||||||
|
'mode': None,
|
||||||
|
'name': 'System 1',
|
||||||
|
'problems': False,
|
||||||
|
'system': 1,
|
||||||
|
'web-server': 'webserver1',
|
||||||
|
'ws-connected': True,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'web-servers': dict({
|
||||||
|
'11:22:33:44:55:67': dict({
|
||||||
|
'available': True,
|
||||||
|
'connection-date': '2023-05-24 17:00:52 +0200',
|
||||||
|
'disconnection-date': '2023-05-24 17:00:25 +0200',
|
||||||
|
'firmware': '3.13',
|
||||||
|
'id': '11:22:33:44:55:67',
|
||||||
|
'installation': 'installation1',
|
||||||
|
'name': 'WebServer 11:22:33:44:55:67',
|
||||||
|
'type': 'ws_aidoo',
|
||||||
|
'wifi-channel': 1,
|
||||||
|
'wifi-mac': '**REDACTED**',
|
||||||
|
'wifi-quality': 4,
|
||||||
|
'wifi-rssi': -77,
|
||||||
|
'wifi-ssid': 'Wifi',
|
||||||
|
}),
|
||||||
|
'webserver1': dict({
|
||||||
|
'available': True,
|
||||||
|
'connection-date': '2023-05-07T12:55:51.000Z',
|
||||||
|
'disconnection-date': '2023-01-01T22:26:55.376Z',
|
||||||
|
'firmware': '3.44',
|
||||||
|
'id': 'webserver1',
|
||||||
|
'installation': 'installation1',
|
||||||
|
'name': 'WebServer 11:22:33:44:55:66',
|
||||||
|
'type': 'ws_az',
|
||||||
|
'wifi-channel': 36,
|
||||||
|
'wifi-mac': '**REDACTED**',
|
||||||
|
'wifi-quality': 4,
|
||||||
|
'wifi-rssi': -56,
|
||||||
|
'wifi-ssid': 'Wifi',
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
'zones': dict({
|
||||||
|
'zone1': dict({
|
||||||
|
'action': 6,
|
||||||
|
'active': True,
|
||||||
|
'available': True,
|
||||||
|
'humidity': 30,
|
||||||
|
'id': 'zone1',
|
||||||
|
'installation': 'installation1',
|
||||||
|
'is-connected': True,
|
||||||
|
'master': None,
|
||||||
|
'mode': None,
|
||||||
|
'name': 'Salon',
|
||||||
|
'power': None,
|
||||||
|
'problems': False,
|
||||||
|
'system': 1,
|
||||||
|
'system-id': 'system1',
|
||||||
|
'temperature': 20.0,
|
||||||
|
'temperature-step': 0.5,
|
||||||
|
'web-server': 'webserver1',
|
||||||
|
'ws-connected': True,
|
||||||
|
'zone': 1,
|
||||||
|
}),
|
||||||
|
'zone2': dict({
|
||||||
|
'action': 6,
|
||||||
|
'active': False,
|
||||||
|
'available': True,
|
||||||
|
'humidity': 24,
|
||||||
|
'id': 'zone2',
|
||||||
|
'installation': 'installation1',
|
||||||
|
'is-connected': True,
|
||||||
|
'master': None,
|
||||||
|
'mode': None,
|
||||||
|
'name': 'Dormitorio',
|
||||||
|
'power': None,
|
||||||
|
'problems': False,
|
||||||
|
'system': 1,
|
||||||
|
'system-id': 'system1',
|
||||||
|
'temperature': 25.0,
|
||||||
|
'temperature-step': 0.5,
|
||||||
|
'web-server': 'webserver1',
|
||||||
|
'ws-connected': True,
|
||||||
|
'zone': 2,
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
}),
|
||||||
|
})
|
||||||
|
# ---
|
@ -8,22 +8,16 @@ from aioairzone_cloud.const import (
|
|||||||
API_GROUP_ID,
|
API_GROUP_ID,
|
||||||
API_GROUPS,
|
API_GROUPS,
|
||||||
API_WS_ID,
|
API_WS_ID,
|
||||||
AZD_AIDOOS,
|
|
||||||
AZD_GROUPS,
|
|
||||||
AZD_INSTALLATIONS,
|
|
||||||
AZD_SYSTEMS,
|
|
||||||
AZD_WEBSERVERS,
|
|
||||||
AZD_ZONES,
|
|
||||||
RAW_DEVICES_CONFIG,
|
RAW_DEVICES_CONFIG,
|
||||||
RAW_DEVICES_STATUS,
|
RAW_DEVICES_STATUS,
|
||||||
RAW_INSTALLATIONS,
|
RAW_INSTALLATIONS,
|
||||||
RAW_INSTALLATIONS_LIST,
|
RAW_INSTALLATIONS_LIST,
|
||||||
RAW_WEBSERVERS,
|
RAW_WEBSERVERS,
|
||||||
)
|
)
|
||||||
|
from syrupy import SnapshotAssertion
|
||||||
|
|
||||||
from homeassistant.components.airzone_cloud.const import DOMAIN
|
from homeassistant.components.airzone_cloud.const import DOMAIN
|
||||||
from homeassistant.components.diagnostics import REDACTED
|
from homeassistant.const import CONF_ID
|
||||||
from homeassistant.const import CONF_ID, CONF_PASSWORD, CONF_USERNAME
|
|
||||||
from homeassistant.core import HomeAssistant
|
from homeassistant.core import HomeAssistant
|
||||||
|
|
||||||
from .util import CONFIG, WS_ID, async_init_integration
|
from .util import CONFIG, WS_ID, async_init_integration
|
||||||
@ -78,7 +72,9 @@ RAW_DATA_MOCK = {
|
|||||||
|
|
||||||
|
|
||||||
async def test_config_entry_diagnostics(
|
async def test_config_entry_diagnostics(
|
||||||
hass: HomeAssistant, hass_client: ClientSessionGenerator
|
hass: HomeAssistant,
|
||||||
|
hass_client: ClientSessionGenerator,
|
||||||
|
snapshot: SnapshotAssertion,
|
||||||
) -> None:
|
) -> None:
|
||||||
"""Test config entry diagnostics."""
|
"""Test config entry diagnostics."""
|
||||||
await async_init_integration(hass)
|
await async_init_integration(hass)
|
||||||
@ -89,40 +85,5 @@ async def test_config_entry_diagnostics(
|
|||||||
"homeassistant.components.airzone_cloud.AirzoneCloudApi.raw_data",
|
"homeassistant.components.airzone_cloud.AirzoneCloudApi.raw_data",
|
||||||
return_value=RAW_DATA_MOCK,
|
return_value=RAW_DATA_MOCK,
|
||||||
):
|
):
|
||||||
diag = await get_diagnostics_for_config_entry(hass, hass_client, config_entry)
|
result = await get_diagnostics_for_config_entry(hass, hass_client, config_entry)
|
||||||
|
assert result == snapshot
|
||||||
assert list(diag["api_data"]) >= list(RAW_DATA_MOCK)
|
|
||||||
assert "dev1" not in diag["api_data"][RAW_DEVICES_CONFIG]
|
|
||||||
assert "device1" in diag["api_data"][RAW_DEVICES_CONFIG]
|
|
||||||
assert (
|
|
||||||
diag["api_data"][RAW_INSTALLATIONS]["installation1"][API_GROUPS][0][
|
|
||||||
API_GROUP_ID
|
|
||||||
]
|
|
||||||
== "group1"
|
|
||||||
)
|
|
||||||
assert "inst1" not in diag["api_data"][RAW_INSTALLATIONS]
|
|
||||||
assert "installation1" in diag["api_data"][RAW_INSTALLATIONS]
|
|
||||||
assert WS_ID not in diag["api_data"][RAW_WEBSERVERS]
|
|
||||||
assert "webserver1" in diag["api_data"][RAW_WEBSERVERS]
|
|
||||||
|
|
||||||
assert (
|
|
||||||
diag["config_entry"].items()
|
|
||||||
>= {
|
|
||||||
"data": {
|
|
||||||
CONF_ID: "installation1",
|
|
||||||
CONF_PASSWORD: REDACTED,
|
|
||||||
CONF_USERNAME: REDACTED,
|
|
||||||
},
|
|
||||||
"domain": DOMAIN,
|
|
||||||
"unique_id": "installation1",
|
|
||||||
}.items()
|
|
||||||
)
|
|
||||||
|
|
||||||
assert list(diag["coord_data"]) >= [
|
|
||||||
AZD_AIDOOS,
|
|
||||||
AZD_GROUPS,
|
|
||||||
AZD_INSTALLATIONS,
|
|
||||||
AZD_SYSTEMS,
|
|
||||||
AZD_WEBSERVERS,
|
|
||||||
AZD_ZONES,
|
|
||||||
]
|
|
||||||
|
@ -223,6 +223,7 @@ async def async_init_integration(
|
|||||||
|
|
||||||
config_entry = MockConfigEntry(
|
config_entry = MockConfigEntry(
|
||||||
data=CONFIG,
|
data=CONFIG,
|
||||||
|
entry_id="d186e31edb46d64d14b9b2f11f1ebd9f",
|
||||||
domain=DOMAIN,
|
domain=DOMAIN,
|
||||||
unique_id=CONFIG[CONF_ID],
|
unique_id=CONFIG[CONF_ID],
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user