"""Diagnosesensoren.""" from __future__ import annotations from typing import Any from freezegun.api import FrozenDateTimeFactory from homeassistant.core import HomeAssistant from homeassistant.helpers import entity_registry as er import pytest from pytest_homeassistant_custom_component.common import MockConfigEntry from tests.helpers import abfragen, entity_id_for @pytest.mark.parametrize( ("key", "wert"), [("rssi", "-68"), ("uptime", "1459"), ("free_heap", "156848"), ("power_scale", "100")], ) async def test_werte( hass: HomeAssistant, init_integration: MockConfigEntry, key: str, wert: str ) -> None: registry = er.async_get(hass) entity_id = entity_id_for(hass, "sensor", key) eintrag = registry.async_get(entity_id) assert eintrag is not None if eintrag.disabled: # Die drei Diagnosesensoren sind standardmaessig aus; dann gibt es # keinen Zustand, und mehr ist hier nicht zu pruefen. assert key in ("rssi", "uptime", "free_heap") return assert hass.states.get(entity_id).state == wert async def test_nur_die_leistungsbegrenzung_ist_von_haus_aus_an( hass: HomeAssistant, init_integration: MockConfigEntry ) -> None: registry = er.async_get(hass) an = [ registry.async_get(entity_id_for(hass, "sensor", key)).disabled_by is None for key in ("rssi", "uptime", "free_heap", "power_scale") ] assert an == [False, False, False, True] async def test_fehlender_wifi_block_ergibt_keinen_wert( hass: HomeAssistant, init_integration: MockConfigEntry, strip_info: dict[str, Any], freezer: FrozenDateTimeFactory, ) -> None: """Ein Geraet im Onboarding meldet keinen strip-Block mit power_scale.""" strip_info.pop("strip") await abfragen(hass, freezer) assert hass.states.get(entity_id_for(hass, "sensor", "power_scale")).state == "unknown"