Fix hkid matching in homekit_controller when zeroconf value is not upper case (#100641)
This commit is contained in:
parent
77001b26de
commit
ec5675ff4b
2 changed files with 100 additions and 23 deletions
|
@ -1180,3 +1180,80 @@ async def test_bluetooth_valid_device_discovery_unpaired(
|
|||
assert result3["data"] == {}
|
||||
|
||||
assert storage.get_map("00:00:00:00:00:00") is not None
|
||||
|
||||
|
||||
async def test_discovery_updates_ip_when_config_entry_set_up(
|
||||
hass: HomeAssistant, controller
|
||||
) -> None:
|
||||
"""Already configured updates ip when config entry set up."""
|
||||
entry = MockConfigEntry(
|
||||
domain="homekit_controller",
|
||||
data={
|
||||
"AccessoryIP": "4.4.4.4",
|
||||
"AccessoryPort": 66,
|
||||
"AccessoryPairingID": "AA:BB:CC:DD:EE:FF",
|
||||
},
|
||||
unique_id="aa:bb:cc:dd:ee:ff",
|
||||
)
|
||||
entry.add_to_hass(hass)
|
||||
|
||||
connection_mock = AsyncMock()
|
||||
hass.data[KNOWN_DEVICES] = {"AA:BB:CC:DD:EE:FF": connection_mock}
|
||||
|
||||
device = setup_mock_accessory(controller)
|
||||
discovery_info = get_device_discovery_info(device)
|
||||
|
||||
# Set device as already paired
|
||||
discovery_info.properties["sf"] = 0x00
|
||||
discovery_info.properties[zeroconf.ATTR_PROPERTIES_ID] = "Aa:bB:cC:dD:eE:fF"
|
||||
|
||||
# Device is discovered
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
"homekit_controller",
|
||||
context={"source": config_entries.SOURCE_ZEROCONF},
|
||||
data=discovery_info,
|
||||
)
|
||||
assert result["type"] == FlowResultType.ABORT
|
||||
assert result["reason"] == "already_configured"
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert entry.data["AccessoryIP"] == discovery_info.host
|
||||
assert entry.data["AccessoryPort"] == discovery_info.port
|
||||
|
||||
|
||||
async def test_discovery_updates_ip_config_entry_not_set_up(
|
||||
hass: HomeAssistant, controller
|
||||
) -> None:
|
||||
"""Already configured updates ip when the config entry is not set up."""
|
||||
entry = MockConfigEntry(
|
||||
domain="homekit_controller",
|
||||
data={
|
||||
"AccessoryIP": "4.4.4.4",
|
||||
"AccessoryPort": 66,
|
||||
"AccessoryPairingID": "AA:BB:CC:DD:EE:FF",
|
||||
},
|
||||
unique_id="aa:bb:cc:dd:ee:ff",
|
||||
)
|
||||
entry.add_to_hass(hass)
|
||||
|
||||
AsyncMock()
|
||||
|
||||
device = setup_mock_accessory(controller)
|
||||
discovery_info = get_device_discovery_info(device)
|
||||
|
||||
# Set device as already paired
|
||||
discovery_info.properties["sf"] = 0x00
|
||||
discovery_info.properties[zeroconf.ATTR_PROPERTIES_ID] = "Aa:bB:cC:dD:eE:fF"
|
||||
|
||||
# Device is discovered
|
||||
result = await hass.config_entries.flow.async_init(
|
||||
"homekit_controller",
|
||||
context={"source": config_entries.SOURCE_ZEROCONF},
|
||||
data=discovery_info,
|
||||
)
|
||||
assert result["type"] == FlowResultType.ABORT
|
||||
assert result["reason"] == "already_configured"
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert entry.data["AccessoryIP"] == discovery_info.host
|
||||
assert entry.data["AccessoryPort"] == discovery_info.port
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue