mirror of
https://github.com/home-assistant/core.git
synced 2025-04-24 09:17:53 +00:00
Add test for myuplink DeviceInfo (#136360)
This commit is contained in:
parent
e120a7b59c
commit
5a52c77523
40
tests/components/myuplink/fixtures/device-alfred.json
Normal file
40
tests/components/myuplink/fixtures/device-alfred.json
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
"id": "alfred-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff",
|
||||
"connectionState": "Connected",
|
||||
"firmware": {
|
||||
"currentFwVersion": "9682R7A",
|
||||
"desiredFwVersion": "9682R7A"
|
||||
},
|
||||
"product": {
|
||||
"serialNumber": "10001",
|
||||
"name": "Tehowatti Air"
|
||||
},
|
||||
"availableFeatures": {
|
||||
"settings": true,
|
||||
"reboot": true,
|
||||
"forcesync": true,
|
||||
"forceUpdate": false,
|
||||
"requestUpdate": false,
|
||||
"resetAlarm": true,
|
||||
"triggerEvent": true,
|
||||
"getMenu": false,
|
||||
"getMenuChain": false,
|
||||
"getGuideQuestion": false,
|
||||
"sendHaystack": true,
|
||||
"setSmartMode": false,
|
||||
"setAidMode": true,
|
||||
"getZones": false,
|
||||
"processIntent": false,
|
||||
"boostHotWater": true,
|
||||
"boostVentilation": true,
|
||||
"getScheduleConfig": false,
|
||||
"getScheduleModes": false,
|
||||
"getScheduleWeekly": false,
|
||||
"getScheduleVacation": false,
|
||||
"setScheduleModes": false,
|
||||
"setScheduleWeekly": false,
|
||||
"setScheduleOverride": false,
|
||||
"setScheduleVacation": false,
|
||||
"setVentilationMode": false
|
||||
}
|
||||
}
|
40
tests/components/myuplink/fixtures/device-batman.json
Normal file
40
tests/components/myuplink/fixtures/device-batman.json
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
"id": "batman-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff",
|
||||
"connectionState": "Connected",
|
||||
"firmware": {
|
||||
"currentFwVersion": "9682R7B",
|
||||
"desiredFwVersion": "9682R7B"
|
||||
},
|
||||
"product": {
|
||||
"serialNumber": "10002",
|
||||
"name": "F730 CU 3x400V"
|
||||
},
|
||||
"availableFeatures": {
|
||||
"settings": true,
|
||||
"reboot": true,
|
||||
"forcesync": true,
|
||||
"forceUpdate": false,
|
||||
"requestUpdate": false,
|
||||
"resetAlarm": true,
|
||||
"triggerEvent": true,
|
||||
"getMenu": false,
|
||||
"getMenuChain": false,
|
||||
"getGuideQuestion": false,
|
||||
"sendHaystack": true,
|
||||
"setSmartMode": false,
|
||||
"setAidMode": true,
|
||||
"getZones": false,
|
||||
"processIntent": false,
|
||||
"boostHotWater": true,
|
||||
"boostVentilation": true,
|
||||
"getScheduleConfig": false,
|
||||
"getScheduleModes": false,
|
||||
"getScheduleWeekly": false,
|
||||
"getScheduleVacation": false,
|
||||
"setScheduleModes": false,
|
||||
"setScheduleWeekly": false,
|
||||
"setScheduleOverride": false,
|
||||
"setScheduleVacation": false,
|
||||
"setVentilationMode": false
|
||||
}
|
||||
}
|
40
tests/components/myuplink/fixtures/device-robin.json
Normal file
40
tests/components/myuplink/fixtures/device-robin.json
Normal file
@ -0,0 +1,40 @@
|
||||
{
|
||||
"id": "robin-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff",
|
||||
"connectionState": "Connected",
|
||||
"firmware": {
|
||||
"currentFwVersion": "9682R7C",
|
||||
"desiredFwVersion": "9682R7C"
|
||||
},
|
||||
"product": {
|
||||
"serialNumber": "10003",
|
||||
"name": "SMO 20"
|
||||
},
|
||||
"availableFeatures": {
|
||||
"settings": true,
|
||||
"reboot": true,
|
||||
"forcesync": true,
|
||||
"forceUpdate": false,
|
||||
"requestUpdate": false,
|
||||
"resetAlarm": true,
|
||||
"triggerEvent": true,
|
||||
"getMenu": false,
|
||||
"getMenuChain": false,
|
||||
"getGuideQuestion": false,
|
||||
"sendHaystack": true,
|
||||
"setSmartMode": false,
|
||||
"setAidMode": true,
|
||||
"getZones": false,
|
||||
"processIntent": false,
|
||||
"boostHotWater": true,
|
||||
"boostVentilation": true,
|
||||
"getScheduleConfig": false,
|
||||
"getScheduleModes": false,
|
||||
"getScheduleWeekly": false,
|
||||
"getScheduleVacation": false,
|
||||
"setScheduleModes": false,
|
||||
"setScheduleWeekly": false,
|
||||
"setScheduleOverride": false,
|
||||
"setScheduleVacation": false,
|
||||
"setVentilationMode": false
|
||||
}
|
||||
}
|
61
tests/components/myuplink/fixtures/systems-multi.json
Normal file
61
tests/components/myuplink/fixtures/systems-multi.json
Normal file
@ -0,0 +1,61 @@
|
||||
{
|
||||
"page": 1,
|
||||
"itemsPerPage": 10,
|
||||
"numItems": 3,
|
||||
"systems": [
|
||||
{
|
||||
"systemId": "123456-7890-1234",
|
||||
"name": "Gotham City",
|
||||
"securityLevel": "admin",
|
||||
"hasAlarm": false,
|
||||
"country": "Sweden",
|
||||
"devices": [
|
||||
{
|
||||
"id": "alfred-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff",
|
||||
"connectionState": "Connected",
|
||||
"currentFwVersion": "9682R7A",
|
||||
"product": {
|
||||
"serialNumber": "10001",
|
||||
"name": "Tehowatti Air"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"systemId": "123456-7890-1234",
|
||||
"name": "Batcave",
|
||||
"securityLevel": "admin",
|
||||
"hasAlarm": false,
|
||||
"country": "Sweden",
|
||||
"devices": [
|
||||
{
|
||||
"id": "batman-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff",
|
||||
"connectionState": "Connected",
|
||||
"currentFwVersion": "9682R7B",
|
||||
"product": {
|
||||
"serialNumber": "10002",
|
||||
"name": "F730 CU 3x400V"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"systemId": "123456-7890-1234",
|
||||
"name": "Duckburg",
|
||||
"securityLevel": "admin",
|
||||
"hasAlarm": false,
|
||||
"country": "Sweden",
|
||||
"devices": [
|
||||
{
|
||||
"id": "robin-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff",
|
||||
"connectionState": "Connected",
|
||||
"currentFwVersion": "9682R7C",
|
||||
"product": {
|
||||
"serialNumber": "10003",
|
||||
"name": "SM0 20"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
97
tests/components/myuplink/snapshots/test_init.ambr
Normal file
97
tests/components/myuplink/snapshots/test_init.ambr
Normal file
@ -0,0 +1,97 @@
|
||||
# serializer version: 1
|
||||
# name: test_device_info[alfred-multi]
|
||||
DeviceRegistryEntrySnapshot({
|
||||
'area_id': None,
|
||||
'config_entries': <ANY>,
|
||||
'configuration_url': None,
|
||||
'connections': set({
|
||||
}),
|
||||
'disabled_by': None,
|
||||
'entry_type': None,
|
||||
'hw_version': None,
|
||||
'id': <ANY>,
|
||||
'identifiers': set({
|
||||
tuple(
|
||||
'myuplink',
|
||||
'alfred-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff',
|
||||
),
|
||||
}),
|
||||
'is_new': False,
|
||||
'labels': set({
|
||||
}),
|
||||
'manufacturer': 'Jäspi',
|
||||
'model': 'Tehowatti Air',
|
||||
'model_id': None,
|
||||
'name': 'Gotham City',
|
||||
'name_by_user': None,
|
||||
'primary_config_entry': <ANY>,
|
||||
'serial_number': '10001',
|
||||
'suggested_area': None,
|
||||
'sw_version': '9682R7A',
|
||||
'via_device_id': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_device_info[batman-multi]
|
||||
DeviceRegistryEntrySnapshot({
|
||||
'area_id': None,
|
||||
'config_entries': <ANY>,
|
||||
'configuration_url': None,
|
||||
'connections': set({
|
||||
}),
|
||||
'disabled_by': None,
|
||||
'entry_type': None,
|
||||
'hw_version': None,
|
||||
'id': <ANY>,
|
||||
'identifiers': set({
|
||||
tuple(
|
||||
'myuplink',
|
||||
'batman-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff',
|
||||
),
|
||||
}),
|
||||
'is_new': False,
|
||||
'labels': set({
|
||||
}),
|
||||
'manufacturer': 'Nibe',
|
||||
'model': 'F730',
|
||||
'model_id': None,
|
||||
'name': 'Batcave',
|
||||
'name_by_user': None,
|
||||
'primary_config_entry': <ANY>,
|
||||
'serial_number': '10002',
|
||||
'suggested_area': None,
|
||||
'sw_version': '9682R7B',
|
||||
'via_device_id': None,
|
||||
})
|
||||
# ---
|
||||
# name: test_device_info[robin-multi]
|
||||
DeviceRegistryEntrySnapshot({
|
||||
'area_id': None,
|
||||
'config_entries': <ANY>,
|
||||
'configuration_url': None,
|
||||
'connections': set({
|
||||
}),
|
||||
'disabled_by': None,
|
||||
'entry_type': None,
|
||||
'hw_version': None,
|
||||
'id': <ANY>,
|
||||
'identifiers': set({
|
||||
tuple(
|
||||
'myuplink',
|
||||
'robin-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff',
|
||||
),
|
||||
}),
|
||||
'is_new': False,
|
||||
'labels': set({
|
||||
}),
|
||||
'manufacturer': 'Nibe',
|
||||
'model': 'SMO 20',
|
||||
'model_id': None,
|
||||
'name': 'Duckburg',
|
||||
'name_by_user': None,
|
||||
'primary_config_entry': <ANY>,
|
||||
'serial_number': '10003',
|
||||
'suggested_area': None,
|
||||
'sw_version': '9682R7C',
|
||||
'via_device_id': None,
|
||||
})
|
||||
# ---
|
@ -6,6 +6,7 @@ from unittest.mock import MagicMock
|
||||
|
||||
from aiohttp import ClientConnectionError
|
||||
import pytest
|
||||
from syrupy import SnapshotAssertion
|
||||
|
||||
from homeassistant.components.myuplink.const import DOMAIN, OAUTH2_TOKEN
|
||||
from homeassistant.config_entries import ConfigEntryState
|
||||
@ -214,3 +215,47 @@ async def test_device_remove_devices(
|
||||
old_device_entry.id, mock_config_entry.entry_id
|
||||
)
|
||||
assert response["success"]
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"load_systems_file",
|
||||
[load_fixture("systems-multi.json", DOMAIN)],
|
||||
ids=[
|
||||
"multi",
|
||||
],
|
||||
)
|
||||
@pytest.mark.parametrize(
|
||||
("load_device_file", "device_id"),
|
||||
[
|
||||
(
|
||||
load_fixture("device-alfred.json", DOMAIN),
|
||||
"alfred-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff",
|
||||
),
|
||||
(
|
||||
load_fixture("device-batman.json", DOMAIN),
|
||||
"batman-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff",
|
||||
),
|
||||
(
|
||||
load_fixture("device-robin.json", DOMAIN),
|
||||
"robin-r-1234-20240201-123456-aa-bb-cc-dd-ee-ff",
|
||||
),
|
||||
],
|
||||
ids=[
|
||||
"alfred",
|
||||
"batman",
|
||||
"robin",
|
||||
],
|
||||
)
|
||||
async def test_device_info(
|
||||
hass: HomeAssistant,
|
||||
snapshot: SnapshotAssertion,
|
||||
mock_myuplink_client: MagicMock,
|
||||
mock_config_entry: MockConfigEntry,
|
||||
device_registry: dr.DeviceRegistry,
|
||||
device_id: str,
|
||||
) -> None:
|
||||
"""Test device registry integration."""
|
||||
await setup_integration(hass, mock_config_entry)
|
||||
device_entry = device_registry.async_get_device(identifiers={(DOMAIN, device_id)})
|
||||
assert device_entry is not None
|
||||
assert device_entry == snapshot
|
||||
|
Loading…
x
Reference in New Issue
Block a user