Handle service device in diagnostics for Alexa Devices (#182788)

This commit is contained in:
Simone Chemelli
2026-09-21 19:13:49 +02:00
committed by GitHub
parent 32b8e0517d
commit 62c9711cdd
2 changed files with 27 additions and 2 deletions
@@ -55,9 +55,11 @@ async def async_get_device_diagnostics(
coordinator = entry.runtime_data
if TYPE_CHECKING:
# alexa_devices does not create child devices, and devices have a serial number
assert isinstance(device_entry, DeviceEntry)
assert device_entry.serial_number
if device_entry.serial_number is None:
# Service device has no serial number and no matching coordinator data
return {"service device": True}
return build_device_data(coordinator.data[device_entry.serial_number])
@@ -6,6 +6,7 @@ from syrupy.assertion import SnapshotAssertion
from syrupy.filters import props
from homeassistant.components.alexa_devices.const import DOMAIN
from homeassistant.components.alexa_devices.entity import service_device_id
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr
@@ -66,3 +67,25 @@ async def test_device_diagnostics(
"modified_at",
)
)
async def test_service_device_diagnostics(
hass: HomeAssistant,
mock_amazon_devices_client: AsyncMock,
mock_config_entry: MockConfigEntry,
hass_client: ClientSessionGenerator,
device_registry: dr.DeviceRegistry,
) -> None:
"""Test Amazon service device diagnostics, which has no serial number."""
await setup_integration(hass, mock_config_entry)
device = device_registry.async_get_device_by_identifier(
(DOMAIN, service_device_id(mock_config_entry.runtime_data)),
mock_config_entry.entry_id,
)
assert device, repr(device_registry._devices)
assert device.serial_number is None
assert await get_diagnostics_for_device(
hass, hass_client, mock_config_entry, device
) == {"service device": True}