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:
24
homeassistant/components/litterrobot/diagnostics.py
Normal file
24
homeassistant/components/litterrobot/diagnostics.py
Normal 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)
|
||||
@@ -42,7 +42,7 @@ rules:
|
||||
|
||||
# Gold
|
||||
devices: done
|
||||
diagnostics: todo
|
||||
diagnostics: done
|
||||
discovery-update-info:
|
||||
status: done
|
||||
comment: The integration is cloud-based
|
||||
|
||||
24
tests/components/litterrobot/snapshots/test_diagnostics.ambr
Normal file
24
tests/components/litterrobot/snapshots/test_diagnostics.ambr
Normal 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',
|
||||
}),
|
||||
]),
|
||||
})
|
||||
# ---
|
||||
24
tests/components/litterrobot/test_diagnostics.py
Normal file
24
tests/components/litterrobot/test_diagnostics.py
Normal 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
|
||||
Reference in New Issue
Block a user