diff --git a/homeassistant/components/hdfury/diagnostics.py b/homeassistant/components/hdfury/diagnostics.py new file mode 100644 index 000000000000..c561a97d4ee3 --- /dev/null +++ b/homeassistant/components/hdfury/diagnostics.py @@ -0,0 +1,21 @@ +"""Diagnostics for HDFury Integration.""" + +from typing import Any + +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant + +from .coordinator import HDFuryCoordinator + + +async def async_get_config_entry_diagnostics( + hass: HomeAssistant, entry: ConfigEntry +) -> dict[str, Any]: + """Return diagnostics for a config entry.""" + coordinator: HDFuryCoordinator = entry.runtime_data + + return { + "board": coordinator.data.board, + "info": coordinator.data.info, + "config": coordinator.data.config, + } diff --git a/homeassistant/components/hdfury/quality_scale.yaml b/homeassistant/components/hdfury/quality_scale.yaml index 614a3344f105..8a978b1eeb03 100644 --- a/homeassistant/components/hdfury/quality_scale.yaml +++ b/homeassistant/components/hdfury/quality_scale.yaml @@ -43,7 +43,7 @@ rules: # Gold devices: done - diagnostics: todo + diagnostics: done discovery-update-info: todo discovery: todo docs-data-update: todo diff --git a/tests/components/hdfury/snapshots/test_diagnostics.ambr b/tests/components/hdfury/snapshots/test_diagnostics.ambr new file mode 100644 index 000000000000..448e4f8ff3da --- /dev/null +++ b/tests/components/hdfury/snapshots/test_diagnostics.ambr @@ -0,0 +1,30 @@ +# serializer version: 1 +# name: test_diagnostics + dict({ + 'board': dict({ + 'hostname': 'VRROOM-02', + 'ipaddress': '192.168.1.123', + 'pcbv': '3', + 'serial': '000123456789', + 'version': 'FW: 0.61', + }), + 'config': dict({ + 'autosw': '1', + 'htpcmode0': '0', + 'htpcmode1': '0', + 'htpcmode2': '0', + 'htpcmode3': '0', + 'iractive': '1', + 'macaddr': 'c7:1c:df:9d:f6:40', + 'mutetx0': '1', + 'mutetx1': '1', + 'oled': '1', + 'relay': '0', + }), + 'info': dict({ + 'opmode': '0', + 'portseltx0': '0', + 'portseltx1': '4', + }), + }) +# --- diff --git a/tests/components/hdfury/test_diagnostics.py b/tests/components/hdfury/test_diagnostics.py new file mode 100644 index 000000000000..c602e06ce258 --- /dev/null +++ b/tests/components/hdfury/test_diagnostics.py @@ -0,0 +1,31 @@ +"""Tests for the HDFury diagnostics.""" + +from syrupy.assertion import SnapshotAssertion + +from homeassistant.components.hdfury import PLATFORMS +from homeassistant.core import HomeAssistant +import homeassistant.helpers.entity_registry as er + +from . import setup_integration + +from tests.common import MockConfigEntry +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, + entity_registry: er.EntityRegistry, + mock_config_entry: MockConfigEntry, +) -> None: + """Test HDFury diagnostics.""" + + await setup_integration(hass, mock_config_entry, PLATFORMS) + + diagnostics = await get_diagnostics_for_config_entry( + hass, hass_client, mock_config_entry + ) + + assert diagnostics == snapshot