diff --git a/homeassistant/components/cpuspeed/diagnostics.py b/homeassistant/components/cpuspeed/diagnostics.py new file mode 100644 index 00000000000..a93c71430ef --- /dev/null +++ b/homeassistant/components/cpuspeed/diagnostics.py @@ -0,0 +1,17 @@ +"""Diagnostics support for CPU Speed.""" +from __future__ import annotations + +from typing import Any + +from cpuinfo import cpuinfo + +from homeassistant.config_entries import ConfigEntry +from homeassistant.core import HomeAssistant + + +async def async_get_config_entry_diagnostics( + hass: HomeAssistant, entry: ConfigEntry +) -> dict[str, Any]: + """Return diagnostics for a config entry.""" + info: dict[str, Any] = cpuinfo.get_cpu_info() + return info diff --git a/tests/components/cpuspeed/test_diagnostics.py b/tests/components/cpuspeed/test_diagnostics.py new file mode 100644 index 00000000000..c8554390ea0 --- /dev/null +++ b/tests/components/cpuspeed/test_diagnostics.py @@ -0,0 +1,36 @@ +"""Tests for the diagnostics data provided by the CPU Speed integration.""" +from unittest.mock import patch + +from aiohttp import ClientSession + +from homeassistant.core import HomeAssistant + +from tests.common import MockConfigEntry +from tests.components.diagnostics import get_diagnostics_for_config_entry + + +async def test_diagnostics( + hass: HomeAssistant, + hass_client: ClientSession, + init_integration: MockConfigEntry, +): + """Test diagnostics.""" + info = { + "hz_actual": (3200000001, 0), + "arch_string_raw": "aargh", + "brand_raw": "Intel Ryzen 7", + "hz_advertised": (3600000001, 0), + } + + with patch( + "homeassistant.components.cpuspeed.diagnostics.cpuinfo.get_cpu_info", + return_value=info, + ): + assert await get_diagnostics_for_config_entry( + hass, hass_client, init_integration + ) == { + "hz_actual": [3200000001, 0], + "arch_string_raw": "aargh", + "brand_raw": "Intel Ryzen 7", + "hz_advertised": [3600000001, 0], + }