From dfbd4ffb2db83d91c80897a0bdcd09af14e0045d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Kamil=20Bregu=C5=82a?= Date: Tue, 24 Feb 2026 21:34:54 +0100 Subject: [PATCH] Add diagnostics to met (#157805) Co-authored-by: mik-laj <12058428+mik-laj@users.noreply.github.com> Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- homeassistant/components/met/diagnostics.py | 30 +++++++++++++++++++ .../met/snapshots/test_diagnostics.ambr | 19 ++++++++++++ tests/components/met/test_diagnostics.py | 23 ++++++++++++++ 3 files changed, 72 insertions(+) create mode 100644 homeassistant/components/met/diagnostics.py create mode 100644 tests/components/met/snapshots/test_diagnostics.ambr create mode 100644 tests/components/met/test_diagnostics.py diff --git a/homeassistant/components/met/diagnostics.py b/homeassistant/components/met/diagnostics.py new file mode 100644 index 00000000000..b5a37ac490d --- /dev/null +++ b/homeassistant/components/met/diagnostics.py @@ -0,0 +1,30 @@ +"""Diagnostics support for Met.no integration.""" + +from typing import Any + +from homeassistant.components.diagnostics import async_redact_data +from homeassistant.const import CONF_LATITUDE, CONF_LONGITUDE +from homeassistant.core import HomeAssistant + +from .coordinator import MetWeatherConfigEntry + +TO_REDACT = [ + CONF_LATITUDE, + CONF_LONGITUDE, +] + + +async def async_get_config_entry_diagnostics( + hass: HomeAssistant, entry: MetWeatherConfigEntry +) -> dict[str, Any]: + """Return diagnostics for a config entry.""" + coordinator_data = entry.runtime_data.data + + return { + "entry_data": async_redact_data(entry.data, TO_REDACT), + "data": { + "current_weather_data": coordinator_data.current_weather_data, + "daily_forecast": coordinator_data.daily_forecast, + "hourly_forecast": coordinator_data.hourly_forecast, + }, + } diff --git a/tests/components/met/snapshots/test_diagnostics.ambr b/tests/components/met/snapshots/test_diagnostics.ambr new file mode 100644 index 00000000000..8ca30cb3cdf --- /dev/null +++ b/tests/components/met/snapshots/test_diagnostics.ambr @@ -0,0 +1,19 @@ +# serializer version: 1 +# name: test_entry_diagnostics + dict({ + 'data': dict({ + 'current_weather_data': dict({ + }), + 'daily_forecast': list([ + ]), + 'hourly_forecast': list([ + ]), + }), + 'entry_data': dict({ + 'elevation': 1.0, + 'latitude': '**REDACTED**', + 'longitude': '**REDACTED**', + 'name': 'test', + }), + }) +# --- diff --git a/tests/components/met/test_diagnostics.py b/tests/components/met/test_diagnostics.py new file mode 100644 index 00000000000..7b988991d7a --- /dev/null +++ b/tests/components/met/test_diagnostics.py @@ -0,0 +1,23 @@ +"""Test Met.no diagnostics.""" + +from syrupy.assertion import SnapshotAssertion + +from homeassistant.core import HomeAssistant + +from . import init_integration + +from tests.components.diagnostics import get_diagnostics_for_config_entry +from tests.typing import ClientSessionGenerator + + +async def test_entry_diagnostics( + hass: HomeAssistant, + hass_client: ClientSessionGenerator, + snapshot: SnapshotAssertion, +) -> None: + """Test config entry diagnostics.""" + mock_config_entry = await init_integration(hass) + assert ( + await get_diagnostics_for_config_entry(hass, hass_client, mock_config_entry) + == snapshot + )