Coverage for custom_components/autoarm/diagnostics.py: 100%

12 statements  

« prev     ^ index     » next       coverage.py v7.16.2, created at 2026-10-26 20:57 +0000

1"""Diagnostics support for AutoArm.""" 

2 

3from typing import Any 

4 

5from homeassistant.components.diagnostics import async_redact_data 

6from homeassistant.core import HomeAssistant 

7 

8from .autoarming import AutoArmConfigEntry 

9from .config_flow import CONF_PANEL_CODE 

10from .const import YAML_DATA_KEY 

11 

12 

13async def async_get_config_entry_diagnostics(hass: HomeAssistant, entry: AutoArmConfigEntry) -> dict[str, Any]: 

14 """Return diagnostics for a config entry.""" 

15 yaml_config = hass.data.get(YAML_DATA_KEY, {}) 

16 data: dict[str, Any] = { 

17 "entry_data": dict(entry.data), 

18 "entry_options": async_redact_data(dict(entry.options), {CONF_PANEL_CODE}), 

19 "yaml_keys": list(yaml_config.keys()), 

20 } 

21 

22 if armer := getattr(entry, "runtime_data", None): 

23 data["armer"] = { 

24 "alarm_panel": armer.alarm_panel, 

25 "calendar_count": len(armer.calendars), 

26 "occupants": armer.occupants, 

27 "failures": armer.app_health_tracker.failures, 

28 "initialization_errors": armer.app_health_tracker.initialization_errors, 

29 } 

30 

31 return data