Hide broken ZBT-1 config entries on the hardware page (#142110)

* Hide bad ZBT-1 config entries on the hardware page

* Set up the bad config entry in the unit test

* Roll into a list comprehension

* Remove constant changes

* Fix condition in unit test
This commit is contained in:
puddly 2025-04-03 21:09:13 -04:00 committed by Franck Nijhof
parent 490e3201b9
commit 7546b5d269
No known key found for this signature in database
GPG Key ID: D62583BA8AB11CA3
2 changed files with 24 additions and 2 deletions

View File

@ -5,17 +5,21 @@ from __future__ import annotations
from homeassistant.components.hardware.models import HardwareInfo, USBInfo
from homeassistant.core import HomeAssistant, callback
from .config_flow import HomeAssistantSkyConnectConfigFlow
from .const import DOMAIN
from .util import get_hardware_variant
DOCUMENTATION_URL = "https://skyconnect.home-assistant.io/documentation/"
EXPECTED_ENTRY_VERSION = (
HomeAssistantSkyConnectConfigFlow.VERSION,
HomeAssistantSkyConnectConfigFlow.MINOR_VERSION,
)
@callback
def async_info(hass: HomeAssistant) -> list[HardwareInfo]:
"""Return board info."""
entries = hass.config_entries.async_entries(DOMAIN)
return [
HardwareInfo(
board=None,
@ -31,4 +35,6 @@ def async_info(hass: HomeAssistant) -> list[HardwareInfo]:
url=DOCUMENTATION_URL,
)
for entry in entries
# Ignore unmigrated config entries in the hardware page
if (entry.version, entry.minor_version) == EXPECTED_ENTRY_VERSION
]

View File

@ -28,6 +28,10 @@ CONFIG_ENTRY_DATA_2 = {
"firmware": "ezsp",
}
CONFIG_ENTRY_DATA_BAD = {
"device": "/dev/serial/by-id/usb-Nabu_Casa_Home_Assistant_Connect_ZBT-1_a87b7d75b18beb119fe564a0f320645d-if00-port0",
}
async def test_hardware_info(
hass: HomeAssistant, hass_ws_client: WebSocketGenerator, addon_store_info
@ -59,9 +63,20 @@ async def test_hardware_info(
minor_version=2,
)
config_entry_2.add_to_hass(hass)
assert await hass.config_entries.async_setup(config_entry_2.entry_id)
config_entry_bad = MockConfigEntry(
data=CONFIG_ENTRY_DATA_BAD,
domain=DOMAIN,
options={},
title="Home Assistant Connect ZBT-1",
unique_id="unique_3",
version=1,
minor_version=2,
)
config_entry_bad.add_to_hass(hass)
assert not await hass.config_entries.async_setup(config_entry_bad.entry_id)
client = await hass_ws_client(hass)
await client.send_json({"id": 1, "type": "hardware/info"})
@ -97,5 +112,6 @@ async def test_hardware_info(
"name": "Home Assistant Connect ZBT-1",
"url": "https://skyconnect.home-assistant.io/documentation/",
},
# Bad entry is skipped
]
}