"""Diagnosedaten - und was darin nicht stehen darf.""" from __future__ import annotations from pathlib import Path from homeassistant.core import HomeAssistant from pytest_homeassistant_custom_component.common import MockConfigEntry from custom_components.ninstrip.diagnostics import async_get_config_entry_diagnostics from custom_components.ninstrip.shared import DATA_SHARED, async_scan_catalog from tests_unit.images import build_image from tests_unit.samples import HOST_K1Y, MAC_K1Y, TOKEN def ablegen(verzeichnis: Path, name: str, device_type: str, version: str) -> None: """Blockierendes Schreiben ausserhalb der Ereignisschleife - sonst meldet ruff ASYNC240.""" verzeichnis.mkdir(parents=True, exist_ok=True) (verzeichnis / name).write_bytes(build_image(device_type, version)) async def test_geheimnisse_stehen_nicht_drin( hass: HomeAssistant, init_integration: MockConfigEntry ) -> None: daten = await async_get_config_entry_diagnostics(hass, init_integration) text = repr(daten) for geheim in (TOKEN, HOST_K1Y, MAC_K1Y, "ninIOT"): assert geheim not in text, geheim assert daten["state"]["brightness"] == 100 assert daten["info"]["fw_version"] == "0.1.0-12-g71a57" assert daten["segments"]["segments"][0]["mode"] == "white" async def test_nur_abbilder_der_eigenen_platine( hass: HomeAssistant, init_integration: MockConfigEntry, firmware_dir: Path ) -> None: await hass.async_add_executor_job( ablegen, firmware_dir, "meins.img", "ninstrip-k1y", "0.1.1-rc1" ) await hass.async_add_executor_job(ablegen, firmware_dir, "fremd.img", "ninstrip-rgbc3", "0.2.0") await async_scan_catalog(hass, hass.data[DATA_SHARED]) daten = await async_get_config_entry_diagnostics(hass, init_integration) assert [i["version"] for i in daten["firmware_images"]] == ["0.1.1-rc1"]