Add MAC address to Indevolt device info (#170472)

Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
A. Gideonse
2026-05-13 19:48:58 +02:00
committed by GitHub
co-authored by Joost Lekkerkerker
parent ff971ce20b
commit a4bfbd3dde
6 changed files with 59 additions and 7 deletions
+11 -5
View File
@@ -19,21 +19,26 @@ ALT_TEST_HOST = "192.168.1.101"
TEST_PORT = 8080
TEST_DEVICE_SN_GEN1 = "BK1600-12345678"
TEST_DEVICE_SN_GEN2 = "SolidFlex2000-87654321"
TEST_FW_VERSION = "1.2.3"
TEST_MODEL_GEN1 = "BK1600"
TEST_MODEL_GEN2 = "CMS-SF2000"
# Map device fixture names to generation and fixture files
# Create DeviceInfo per generation
DEVICE_MAPPING = {
1: {
"device": "BK1600",
"device": TEST_MODEL_GEN1,
"generation": 1,
"sn": TEST_DEVICE_SN_GEN1,
"host": ALT_TEST_HOST,
"mac": "aa:bb:cc:11:22:33",
"fw": "1.2.3",
},
2: {
"device": "CMS-SF2000",
"device": TEST_MODEL_GEN2,
"generation": 2,
"sn": TEST_DEVICE_SN_GEN2,
"host": TEST_HOST,
"mac": "aa:bb:cc:44:55:66",
"fw": "1.2.3",
},
}
@@ -121,7 +126,8 @@ def mock_indevolt(generation: int) -> Generator[AsyncMock]:
"sn": device_info["sn"],
"type": device_info["device"],
"generation": device_info["generation"],
"fw": TEST_FW_VERSION,
"fw": device_info["fw"],
"mac": device_info["mac"],
}
}
@@ -39,6 +39,7 @@
'device': dict({
'firmware_version': '1.2.3',
'generation': 1,
'mac_address': 'aa:bb:cc:XX:XX:XX',
'model': 'BK1600',
'serial_number': '**REDACTED**',
}),
@@ -137,6 +138,7 @@
'device': dict({
'firmware_version': '1.2.3',
'generation': 2,
'mac_address': 'aa:bb:cc:XX:XX:XX',
'model': 'CMS-SF2000',
'serial_number': '**REDACTED**',
}),
+28
View File
@@ -6,8 +6,11 @@ import pytest
from homeassistant.config_entries import ConfigEntryState
from homeassistant.core import HomeAssistant
from homeassistant.helpers import device_registry as dr
from homeassistant.helpers.device_registry import CONNECTION_NETWORK_MAC
from . import setup_integration
from .conftest import DEVICE_MAPPING
from tests.common import MockConfigEntry
@@ -30,6 +33,31 @@ async def test_load_unload(
assert mock_config_entry.state is ConfigEntryState.NOT_LOADED
@pytest.mark.parametrize("generation", [1, 2], indirect=True)
async def test_device_info(
hass: HomeAssistant,
mock_indevolt: AsyncMock,
mock_config_entry: MockConfigEntry,
generation: int,
device_registry: dr.DeviceRegistry,
) -> None:
"""Test that device info is correctly registered in the device registry."""
await setup_integration(hass, mock_config_entry)
device_info = DEVICE_MAPPING[generation]
device_entry = device_registry.async_get_device(
connections={(CONNECTION_NETWORK_MAC, device_info["mac"])}
)
assert device_entry is not None
assert device_entry.manufacturer == "INDEVOLT"
assert device_entry.model == device_info["device"]
assert device_entry.serial_number == device_info["sn"]
assert device_entry.sw_version == device_info["fw"]
assert device_entry.hw_version == str(device_info["generation"])
assert (CONNECTION_NETWORK_MAC, device_info["mac"]) in device_entry.connections
@pytest.mark.parametrize("generation", [2], indirect=True)
async def test_load_failure(
hass: HomeAssistant, mock_indevolt: AsyncMock, mock_config_entry: MockConfigEntry