mirror of
https://github.com/home-assistant/core.git
synced 2025-07-21 12:17:07 +00:00
Add diagnostics platform to Uptime Kuma (#148835)
This commit is contained in:
parent
d14a0e0191
commit
648dce2fa3
23
homeassistant/components/uptime_kuma/diagnostics.py
Normal file
23
homeassistant/components/uptime_kuma/diagnostics.py
Normal file
@ -0,0 +1,23 @@
|
||||
"""Diagnostics platform for Uptime Kuma."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
from dataclasses import asdict
|
||||
from typing import Any
|
||||
|
||||
from homeassistant.components.diagnostics import async_redact_data
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from .coordinator import UptimeKumaConfigEntry
|
||||
|
||||
TO_REDACT = {"monitor_url", "monitor_hostname"}
|
||||
|
||||
|
||||
async def async_get_config_entry_diagnostics(
|
||||
hass: HomeAssistant, entry: UptimeKumaConfigEntry
|
||||
) -> dict[str, Any]:
|
||||
"""Return diagnostics for a config entry."""
|
||||
|
||||
return async_redact_data(
|
||||
{k: asdict(v) for k, v in entry.runtime_data.data.items()}, TO_REDACT
|
||||
)
|
@ -43,7 +43,7 @@ rules:
|
||||
|
||||
# Gold
|
||||
devices: done
|
||||
diagnostics: todo
|
||||
diagnostics: done
|
||||
discovery-update-info:
|
||||
status: exempt
|
||||
comment: is not locally discoverable
|
||||
|
41
tests/components/uptime_kuma/snapshots/test_diagnostics.ambr
Normal file
41
tests/components/uptime_kuma/snapshots/test_diagnostics.ambr
Normal file
@ -0,0 +1,41 @@
|
||||
# serializer version: 1
|
||||
# name: test_diagnostics
|
||||
dict({
|
||||
'1': dict({
|
||||
'monitor_cert_days_remaining': 90,
|
||||
'monitor_cert_is_valid': 1,
|
||||
'monitor_hostname': None,
|
||||
'monitor_id': 1,
|
||||
'monitor_name': 'Monitor 1',
|
||||
'monitor_port': None,
|
||||
'monitor_response_time': 120,
|
||||
'monitor_status': 1,
|
||||
'monitor_type': 'http',
|
||||
'monitor_url': '**REDACTED**',
|
||||
}),
|
||||
'2': dict({
|
||||
'monitor_cert_days_remaining': 0,
|
||||
'monitor_cert_is_valid': 0,
|
||||
'monitor_hostname': None,
|
||||
'monitor_id': 2,
|
||||
'monitor_name': 'Monitor 2',
|
||||
'monitor_port': None,
|
||||
'monitor_response_time': 28,
|
||||
'monitor_status': 1,
|
||||
'monitor_type': 'port',
|
||||
'monitor_url': None,
|
||||
}),
|
||||
'3': dict({
|
||||
'monitor_cert_days_remaining': 90,
|
||||
'monitor_cert_is_valid': 1,
|
||||
'monitor_hostname': None,
|
||||
'monitor_id': 3,
|
||||
'monitor_name': 'Monitor 3',
|
||||
'monitor_port': None,
|
||||
'monitor_response_time': 120,
|
||||
'monitor_status': 0,
|
||||
'monitor_type': 'json-query',
|
||||
'monitor_url': '**REDACTED**',
|
||||
}),
|
||||
})
|
||||
# ---
|
28
tests/components/uptime_kuma/test_diagnostics.py
Normal file
28
tests/components/uptime_kuma/test_diagnostics.py
Normal file
@ -0,0 +1,28 @@
|
||||
"""Tests Uptime Kuma diagnostics platform."""
|
||||
|
||||
import pytest
|
||||
from syrupy.assertion import SnapshotAssertion
|
||||
|
||||
from homeassistant.core import HomeAssistant
|
||||
|
||||
from tests.common import MockConfigEntry
|
||||
from tests.components.diagnostics import get_diagnostics_for_config_entry
|
||||
from tests.typing import ClientSessionGenerator
|
||||
|
||||
|
||||
@pytest.mark.usefixtures("mock_pythonkuma")
|
||||
async def test_diagnostics(
|
||||
hass: HomeAssistant,
|
||||
hass_client: ClientSessionGenerator,
|
||||
config_entry: MockConfigEntry,
|
||||
snapshot: SnapshotAssertion,
|
||||
) -> None:
|
||||
"""Test diagnostics."""
|
||||
|
||||
config_entry.add_to_hass(hass)
|
||||
await hass.config_entries.async_setup(config_entry.entry_id)
|
||||
await hass.async_block_till_done()
|
||||
assert (
|
||||
await get_diagnostics_for_config_entry(hass, hass_client, config_entry)
|
||||
== snapshot
|
||||
)
|
Loading…
x
Reference in New Issue
Block a user