1
0
mirror of https://github.com/home-assistant/core.git synced 2026-04-02 08:26:41 +01:00

Add diagnostics to Whisker (#165487)

This commit is contained in:
Nathan Spencer
2026-03-13 13:38:57 -06:00
committed by GitHub
parent 2be3291d8e
commit 4d2732df6f
4 changed files with 73 additions and 1 deletions

View File

@@ -0,0 +1,24 @@
"""Diagnostics support for Litter-Robot."""
from __future__ import annotations
from typing import Any
from pylitterbot.utils import REDACT_FIELDS
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.core import HomeAssistant
from .coordinator import LitterRobotConfigEntry
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, entry: LitterRobotConfigEntry
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
account = entry.runtime_data.account
data = {
"robots": [robot.to_dict() for robot in account.robots],
"pets": [pet.to_dict() for pet in account.pets],
}
return async_redact_data(data, REDACT_FIELDS)

View File

@@ -42,7 +42,7 @@ rules:
# Gold
devices: done
diagnostics: todo
diagnostics: done
discovery-update-info:
status: done
comment: The integration is cloud-based

View File

@@ -0,0 +1,24 @@
# serializer version: 1
# name: test_diagnostics
dict({
'pets': list([
]),
'robots': list([
dict({
'cleanCycleWaitTimeMinutes': '7',
'cycleCapacity': '30',
'cycleCount': '15',
'cyclesAfterDrawerFull': '0',
'lastSeen': '2022-09-17T13:06:37.884Z',
'litterRobotId': '**REDACTED**',
'litterRobotNickname': 'Test',
'litterRobotSerial': '**REDACTED**',
'nightLightActive': '1',
'panelLockActive': '0',
'powerStatus': 'AC',
'sleepModeActive': '112:50:19',
'unitStatus': 'RDY',
}),
]),
})
# ---

View File

@@ -0,0 +1,24 @@
"""Test Litter-Robot diagnostics."""
from unittest.mock import MagicMock
from syrupy.assertion import SnapshotAssertion
from homeassistant.core import HomeAssistant
from .conftest import setup_integration
from tests.components.diagnostics import get_diagnostics_for_config_entry
from tests.typing import ClientSessionGenerator
async def test_diagnostics(
hass: HomeAssistant,
mock_account: MagicMock,
hass_client: ClientSessionGenerator,
snapshot: SnapshotAssertion,
) -> None:
"""Test generating diagnostics for a config entry."""
entry = await setup_integration(hass, mock_account)
diag = await get_diagnostics_for_config_entry(hass, hass_client, entry)
assert diag == snapshot