Implement diagnostics platform for APCUPSD (#112284)
* Implement diagnostic platform for APCUPSd * Put APCUPSd in gold quality scale * Revert quality scale update * Use snapshot testing for apcupsd * Prettify the codepull/114134/head
parent
17378ce408
commit
76052a5385
homeassistant/components/apcupsd
tests/components/apcupsd
|
@ -0,0 +1,22 @@
|
|||
"""Diagnostics support for APCUPSD."""
|
||||
from __future__ import annotations
|
||||
|
||||
from typing import Any
|
||||
|
||||
from homeassistant.components.diagnostics import async_redact_data
|
||||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from .const import DOMAIN
|
||||
from .coordinator import APCUPSdCoordinator, APCUPSdData
|
||||
|
||||
TO_REDACT = {"SERIALNO", "HOSTNAME"}
|
||||
|
||||
|
||||
async def async_get_config_entry_diagnostics(
|
||||
hass: HomeAssistant, entry: ConfigEntry
|
||||
) -> dict[str, Any]:
|
||||
"""Return diagnostics for a config entry."""
|
||||
coordinator: APCUPSdCoordinator = hass.data[DOMAIN][entry.entry_id]
|
||||
data: APCUPSdData = coordinator.data
|
||||
return async_redact_data(data, TO_REDACT)
|
|
@ -0,0 +1,46 @@
|
|||
# serializer version: 1
|
||||
# name: test_diagnostics
|
||||
dict({
|
||||
'ALARMDEL': '30 Seconds',
|
||||
'APC': '001,038,0985',
|
||||
'BATTDATE': '1970-01-01',
|
||||
'BATTV': '13.7 Volts',
|
||||
'BCHARGE': '100.0 Percent',
|
||||
'CABLE': 'USB Cable',
|
||||
'CUMONBATT': '8 Seconds',
|
||||
'DATE': '1970-01-01 00:00:00 0000',
|
||||
'DRIVER': 'USB UPS Driver',
|
||||
'END APC': '1970-01-01 00:00:00 0000',
|
||||
'FIRMWARE': '928.a8 .D USB FW:a8',
|
||||
'HITRANS': '139.0 Volts',
|
||||
'ITEMP': '34.6 C Internal',
|
||||
'LASTSTEST': '1970-01-01 00:00:00 0000',
|
||||
'LASTXFER': 'Automatic or explicit self test',
|
||||
'LINEV': '124.0 Volts',
|
||||
'LOADPCT': '14.0 Percent',
|
||||
'LOTRANS': '92.0 Volts',
|
||||
'MAXTIME': '0 Seconds',
|
||||
'MBATTCHG': '5 Percent',
|
||||
'MINTIMEL': '3 Minutes',
|
||||
'MODEL': 'Back-UPS ES 600',
|
||||
'NOMAPNT': '60.0 VA',
|
||||
'NOMBATTV': '12.0 Volts',
|
||||
'NOMINV': '120 Volts',
|
||||
'NOMPOWER': '330 Watts',
|
||||
'NUMXFERS': '1',
|
||||
'OUTCURNT': '0.88 Amps',
|
||||
'SELFTEST': 'NO',
|
||||
'SENSE': 'Medium',
|
||||
'SERIALNO': '**REDACTED**',
|
||||
'STATFLAG': '0x05000008',
|
||||
'STATUS': 'ONLINE',
|
||||
'STESTI': '7 days',
|
||||
'TIMELEFT': '51.0 Minutes',
|
||||
'TONBATT': '0 Seconds',
|
||||
'UPSMODE': 'Stand Alone',
|
||||
'UPSNAME': 'MyUPS',
|
||||
'VERSION': '3.14.14 (31 May 2016) unknown',
|
||||
'XOFFBATT': '1970-01-01 00:00:00 0000',
|
||||
'XONBATT': '1970-01-01 00:00:00 0000',
|
||||
})
|
||||
# ---
|
|
@ -0,0 +1,18 @@
|
|||
"""Test APCUPSd diagnostics reporting abilities."""
|
||||
from syrupy.assertion import SnapshotAssertion
|
||||
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from tests.components.apcupsd import async_init_integration
|
||||
from tests.components.diagnostics import get_diagnostics_for_config_entry
|
||||
from tests.typing import ClientSessionGenerator
|
||||
|
||||
|
||||
async def test_diagnostics(
|
||||
hass: HomeAssistant,
|
||||
hass_client: ClientSessionGenerator,
|
||||
snapshot: SnapshotAssertion,
|
||||
) -> None:
|
||||
"""Test diagnostics."""
|
||||
entry = await async_init_integration(hass)
|
||||
assert await get_diagnostics_for_config_entry(hass, hass_client, entry) == snapshot
|
Loading…
Reference in New Issue