Add (basic) diagnostics support for Hue integration (#67074)

Co-authored-by: Paulus Schoutsen <balloob@gmail.com>
This commit is contained in:
Marcel van der Veldt 2022-02-23 00:44:02 +01:00 committed by GitHub
parent 1274078f1b
commit cb190a7b17
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 44 additions and 0 deletions

View File

@ -0,0 +1,22 @@
"""Diagnostics support for Hue."""
from __future__ import annotations
from typing import Any
from homeassistant.config_entries import ConfigEntry
from homeassistant.core import HomeAssistant
from .bridge import HueBridge
from .const import DOMAIN
async def async_get_config_entry_diagnostics(
hass: HomeAssistant, entry: ConfigEntry
) -> dict[str, Any]:
"""Return diagnostics for a config entry."""
bridge: HueBridge = hass.data[DOMAIN][entry.entry_id]
if bridge.api_version == 1:
# diagnostics is only implemented for V2 bridges.
return {}
# Hue diagnostics are already redacted
return await bridge.api.get_diagnostics()

View File

@ -0,0 +1,22 @@
"""Test Hue diagnostics."""
from .conftest import setup_platform
from tests.components.diagnostics import get_diagnostics_for_config_entry
async def test_diagnostics_v1(hass, hass_client, mock_bridge_v1):
"""Test diagnostics v1."""
await setup_platform(hass, mock_bridge_v1, [])
config_entry = hass.config_entries.async_entries("hue")[0]
result = await get_diagnostics_for_config_entry(hass, hass_client, config_entry)
assert result == {}
async def test_diagnostics_v2(hass, hass_client, mock_bridge_v2):
"""Test diagnostics v2."""
mock_bridge_v2.api.get_diagnostics.return_value = {"hello": "world"}
await setup_platform(hass, mock_bridge_v2, [])
config_entry = hass.config_entries.async_entries("hue")[0]
result = await get_diagnostics_for_config_entry(hass, hass_client, config_entry)
assert result == {"hello": "world"}