mirror of
https://github.com/home-assistant/core.git
synced 2026-08-03 20:24:55 +02:00
Adapt xiaomi_miio to set via_device_id in DeviceInfo (#177857)
This commit is contained in:
@@ -176,7 +176,11 @@ class XiaomiGatewayDevice(CoordinatorEntity[GatewayDeviceCoordinator], Entity):
|
||||
assert self._entry.unique_id is not None
|
||||
return DeviceInfo(
|
||||
identifiers={(DOMAIN, self._sub_device.sid)},
|
||||
via_device=(DOMAIN, self._entry.unique_id),
|
||||
via_device_id=dr.async_get_device_id_by_identifier(
|
||||
self.hass,
|
||||
(DOMAIN, self._entry.unique_id),
|
||||
config_entry_id=self._entry.entry_id,
|
||||
),
|
||||
manufacturer="Xiaomi",
|
||||
name=self._sub_device.name,
|
||||
model=self._sub_device.model,
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
"""The tests for the xiaomi_miio entity base classes."""
|
||||
|
||||
from unittest.mock import Mock
|
||||
|
||||
from homeassistant.components.xiaomi_miio.const import DOMAIN
|
||||
from homeassistant.components.xiaomi_miio.coordinator import GatewayDeviceCoordinator
|
||||
from homeassistant.components.xiaomi_miio.entity import XiaomiGatewayDevice
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import device_registry as dr
|
||||
|
||||
from . import TEST_MAC
|
||||
|
||||
from tests.common import MockConfigEntry
|
||||
|
||||
|
||||
async def test_gateway_sub_device_via_device_id(
|
||||
hass: HomeAssistant, device_registry: dr.DeviceRegistry
|
||||
) -> None:
|
||||
"""Test a gateway sub device links to the gateway device via via_device_id."""
|
||||
config_entry = MockConfigEntry(domain=DOMAIN, unique_id=TEST_MAC)
|
||||
config_entry.add_to_hass(hass)
|
||||
|
||||
gateway_device = device_registry.async_get_or_create(
|
||||
config_entry_id=config_entry.entry_id,
|
||||
identifiers={(DOMAIN, TEST_MAC)},
|
||||
manufacturer="Xiaomi",
|
||||
name="Test Gateway",
|
||||
)
|
||||
|
||||
sub_device = Mock(
|
||||
sid="158d0001d7c95a",
|
||||
model="lumi.sensor_ht",
|
||||
firmware_version="1.2",
|
||||
zigbee_model="lumi.sensor_ht.v1",
|
||||
)
|
||||
sub_device.name = "Sub Device"
|
||||
|
||||
coordinator = GatewayDeviceCoordinator(hass, config_entry, sub_device)
|
||||
entity = XiaomiGatewayDevice(coordinator)
|
||||
entity.hass = hass
|
||||
|
||||
device_info = entity.device_info
|
||||
|
||||
assert device_info["via_device_id"] == gateway_device.id
|
||||
Reference in New Issue
Block a user