From 6cde5cfdcc90f36c121c16134fc52f6b1749c9a7 Mon Sep 17 00:00:00 2001 From: Manu <4445816+tr4nt0r@users.noreply.github.com> Date: Mon, 11 Aug 2025 23:47:07 +0200 Subject: [PATCH] Add diagnostics platform to Sleep as Android (#150447) --- .../sleep_as_android/diagnostics.py | 19 ++++++++++++++ .../sleep_as_android/quality_scale.yaml | 2 +- .../snapshots/test_diagnostics.ambr | 8 ++++++ .../sleep_as_android/test_diagnostics.py | 26 +++++++++++++++++++ 4 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 homeassistant/components/sleep_as_android/diagnostics.py create mode 100644 tests/components/sleep_as_android/snapshots/test_diagnostics.ambr create mode 100644 tests/components/sleep_as_android/test_diagnostics.py diff --git a/homeassistant/components/sleep_as_android/diagnostics.py b/homeassistant/components/sleep_as_android/diagnostics.py new file mode 100644 index 00000000000..2f49e818ece --- /dev/null +++ b/homeassistant/components/sleep_as_android/diagnostics.py @@ -0,0 +1,19 @@ +"""Diagnostics platform for Sleep as Android integration.""" + +from __future__ import annotations + +from typing import Any + +from homeassistant.core import HomeAssistant + +from . import SleepAsAndroidConfigEntry + + +async def async_get_config_entry_diagnostics( + hass: HomeAssistant, config_entry: SleepAsAndroidConfigEntry +) -> dict[str, Any]: + """Return diagnostics for a config entry.""" + + return { + "config_entry_data": {"cloudhook": config_entry.data["cloudhook"]}, + } diff --git a/homeassistant/components/sleep_as_android/quality_scale.yaml b/homeassistant/components/sleep_as_android/quality_scale.yaml index 5565f9eb834..acc2d8d11f0 100644 --- a/homeassistant/components/sleep_as_android/quality_scale.yaml +++ b/homeassistant/components/sleep_as_android/quality_scale.yaml @@ -61,7 +61,7 @@ rules: # Gold devices: done - diagnostics: todo + diagnostics: done discovery-update-info: status: exempt comment: no discovery diff --git a/tests/components/sleep_as_android/snapshots/test_diagnostics.ambr b/tests/components/sleep_as_android/snapshots/test_diagnostics.ambr new file mode 100644 index 00000000000..c7e391317da --- /dev/null +++ b/tests/components/sleep_as_android/snapshots/test_diagnostics.ambr @@ -0,0 +1,8 @@ +# serializer version: 1 +# name: test_diagnostics + dict({ + 'config_entry_data': dict({ + 'cloudhook': False, + }), + }) +# --- diff --git a/tests/components/sleep_as_android/test_diagnostics.py b/tests/components/sleep_as_android/test_diagnostics.py new file mode 100644 index 00000000000..a3e67dafe76 --- /dev/null +++ b/tests/components/sleep_as_android/test_diagnostics.py @@ -0,0 +1,26 @@ +"""Tests for Sleep as Android diagnostics.""" + +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, + 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 + )