mirror of
https://github.com/home-assistant/core.git
synced 2026-11-06 05:32:45 -04:00
Add MAC address to Indevolt device info (#170472)
Co-authored-by: Joost Lekkerkerker <joostlek@outlook.com>
This commit is contained in:
co-authored by
Joost Lekkerkerker
parent
ff971ce20b
commit
a4bfbd3dde
@@ -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**',
|
||||
}),
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user