Add diagnostics to history_stats (#152460)

This commit is contained in:
karwosts
2025-09-16 16:02:35 -07:00
committed by GitHub
parent 4a4c124181
commit d67ec7593a
2 changed files with 51 additions and 0 deletions
@@ -0,0 +1,23 @@
"""Diagnostics support for history_stats."""
from __future__ import annotations
from typing import Any
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from homeassistant.helpers import entity_registry as er
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: ConfigEntry
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
registry = er.async_get(hass)
entities = registry.entities.get_entries_for_config_entry_id(config_entry.entry_id)
return {
"config_entry": config_entry.as_dict(),
"entity": [entity.extended_dict for entity in entities],
}
@@ -0,0 +1,28 @@
"""Tests for derivative diagnostics."""
import pytest
from homeassistant.components.history_stats.const import DEFAULT_NAME, DOMAIN
from homeassistant.const import CONF_ENTITY_ID, CONF_NAME
from homeassistant.core import HomeAssistant
from tests.components.diagnostics import get_diagnostics_for_config_entry
from tests.typing import ClientSessionGenerator
@pytest.mark.usefixtures("recorder_mock")
async def test_diagnostics(
hass: HomeAssistant, hass_client: ClientSessionGenerator, loaded_entry
) -> None:
"""Test diagnostics for config entry."""
result = await get_diagnostics_for_config_entry(hass, hass_client, loaded_entry)
assert isinstance(result, dict)
assert result["config_entry"]["domain"] == DOMAIN
assert result["config_entry"]["options"][CONF_NAME] == DEFAULT_NAME
assert (
result["config_entry"]["options"][CONF_ENTITY_ID]
== "binary_sensor.test_monitored"
)
assert result["entity"][0]["entity_id"] == "sensor.unnamed_statistics"