Add CO2signal diagnostics (#64646)

This commit is contained in:
Paulus Schoutsen 2022-01-21 11:20:59 -08:00 committed by GitHub
parent 3c250ecf43
commit a827d91e3a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 55 additions and 0 deletions

View file

@ -0,0 +1,23 @@
"""Diagnostics support for CO2Signal."""
from __future__ import annotations
from homeassistant.components.diagnostics import async_redact_data
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import CONF_API_KEY
from homeassistant.core import HomeAssistant
from . import DOMAIN, CO2SignalCoordinator
TO_REDACT = {CONF_API_KEY}
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, config_entry: ConfigEntry
) -> dict:
"""Return diagnostics for a config entry."""
coordinator: CO2SignalCoordinator = hass.data[DOMAIN][config_entry.entry_id]
return {
"config_entry": async_redact_data(config_entry.as_dict(), TO_REDACT),
"data": coordinator.data,
}

View file

@ -0,0 +1,32 @@
"""Test the CO2Signal diagnostics."""
from unittest.mock import patch
from homeassistant.components.co2signal import DOMAIN
from homeassistant.components.diagnostics import REDACTED
from homeassistant.const import CONF_API_KEY
from homeassistant.setup import async_setup_component
from . import VALID_PAYLOAD
from tests.common import MockConfigEntry
from tests.components.diagnostics import get_diagnostics_for_config_entry
async def test_entry_diagnostics(hass, hass_client):
"""Test config entry diagnostics."""
config_entry = MockConfigEntry(
domain=DOMAIN, data={CONF_API_KEY: "", "location": ""}
)
config_entry.add_to_hass(hass)
with patch("CO2Signal.get_latest", return_value=VALID_PAYLOAD):
assert await async_setup_component(hass, DOMAIN, {})
result = await get_diagnostics_for_config_entry(hass, hass_client, config_entry)
config_entry_dict = config_entry.as_dict()
config_entry_dict["data"][CONF_API_KEY] = REDACTED
assert result == {
"config_entry": config_entry_dict,
"data": VALID_PAYLOAD,
}