From 79aa888ca0aa696571c11f52c5eb01ee184dac95 Mon Sep 17 00:00:00 2001 From: Franck Nijhof Date: Mon, 18 Dec 2023 14:05:15 +0100 Subject: [PATCH] Add diagnostics platform to Tailwind (#105965) --- .../components/tailwind/diagnostics.py | 18 ++++++++++++ .../tailwind/snapshots/test_diagnostics.ambr | 28 +++++++++++++++++++ tests/components/tailwind/test_diagnostics.py | 22 +++++++++++++++ 3 files changed, 68 insertions(+) create mode 100644 homeassistant/components/tailwind/diagnostics.py create mode 100644 tests/components/tailwind/snapshots/test_diagnostics.ambr create mode 100644 tests/components/tailwind/test_diagnostics.py diff --git a/homeassistant/components/tailwind/diagnostics.py b/homeassistant/components/tailwind/diagnostics.py new file mode 100644 index 00000000000..50c9b2266e2 --- /dev/null +++ b/homeassistant/components/tailwind/diagnostics.py @@ -0,0 +1,18 @@ +"""Diagnostics platform for Tailwind.""" +from __future__ import annotations + +from typing import Any + +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant + +from .const import DOMAIN +from .coordinator import TailwindDataUpdateCoordinator + + +async def async_get_config_entry_diagnostics( + hass: HomeAssistant, entry: ConfigEntry +) -> dict[str, Any]: + """Return diagnostics for a config entry.""" + coordinator: TailwindDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] + return coordinator.data.to_dict() diff --git a/tests/components/tailwind/snapshots/test_diagnostics.ambr b/tests/components/tailwind/snapshots/test_diagnostics.ambr new file mode 100644 index 00000000000..1ddfe08a4e3 --- /dev/null +++ b/tests/components/tailwind/snapshots/test_diagnostics.ambr @@ -0,0 +1,28 @@ +# serializer version: 1 +# name: test_diagnostics + dict({ + 'data': dict({ + 'door1': dict({ + 'disabled': 0, + 'door_id': 'door1', + 'index': 0, + 'lockup': 0, + 'status': 'open', + }), + 'door2': dict({ + 'disabled': 0, + 'door_id': 'door2', + 'index': 1, + 'lockup': 0, + 'status': 'open', + }), + }), + 'dev_id': '_3c_e9_e_6d_21_84_', + 'door_num': 2, + 'fw_ver': '10.10', + 'led_brightness': 100, + 'night_mode_en': 0, + 'product': 'iQ3', + 'proto_ver': '0.1', + }) +# --- diff --git a/tests/components/tailwind/test_diagnostics.py b/tests/components/tailwind/test_diagnostics.py new file mode 100644 index 00000000000..3151d323bce --- /dev/null +++ b/tests/components/tailwind/test_diagnostics.py @@ -0,0 +1,22 @@ +"""Tests for diagnostics provided by the Tailwind integration.""" + +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 + + +async def test_diagnostics( + hass: HomeAssistant, + hass_client: ClientSessionGenerator, + init_integration: MockConfigEntry, + snapshot: SnapshotAssertion, +) -> None: + """Test diagnostics.""" + assert ( + await get_diagnostics_for_config_entry(hass, hass_client, init_integration) + == snapshot + )