mirror of
https://github.com/home-assistant/core.git
synced 2025-07-22 20:57:21 +00:00
Reolink migrate unique ID debugging (#142723)
* Filter out unexpected unique_ids * correct * Add test * fix styling
This commit is contained in:
parent
fd2987a9fd
commit
7696b101f6
@ -420,6 +420,14 @@ def migrate_entity_ids(
|
||||
if entity.device_id in ch_device_ids:
|
||||
ch = ch_device_ids[entity.device_id]
|
||||
id_parts = entity.unique_id.split("_", 2)
|
||||
if len(id_parts) < 3:
|
||||
_LOGGER.warning(
|
||||
"Reolink channel %s entity has unexpected unique_id format %s, with device id %s",
|
||||
ch,
|
||||
entity.unique_id,
|
||||
entity.device_id,
|
||||
)
|
||||
continue
|
||||
if host.api.supported(ch, "UID") and id_parts[1] != host.api.camera_uid(ch):
|
||||
new_id = f"{host.unique_id}_{host.api.camera_uid(ch)}_{id_parts[2]}"
|
||||
existing_entity = entity_reg.async_get_entity_id(
|
||||
|
@ -424,6 +424,15 @@ async def test_removing_chime(
|
||||
True,
|
||||
True,
|
||||
),
|
||||
(
|
||||
f"{TEST_UID}_unexpected",
|
||||
f"{TEST_UID}_unexpected",
|
||||
f"{TEST_UID}_{TEST_UID_CAM}",
|
||||
f"{TEST_UID}_{TEST_UID_CAM}",
|
||||
Platform.SWITCH,
|
||||
True,
|
||||
True,
|
||||
),
|
||||
],
|
||||
)
|
||||
async def test_migrate_entity_ids(
|
||||
@ -469,7 +478,8 @@ async def test_migrate_entity_ids(
|
||||
)
|
||||
|
||||
assert entity_registry.async_get_entity_id(domain, DOMAIN, original_id)
|
||||
assert entity_registry.async_get_entity_id(domain, DOMAIN, new_id) is None
|
||||
if original_id != new_id:
|
||||
assert entity_registry.async_get_entity_id(domain, DOMAIN, new_id) is None
|
||||
|
||||
assert device_registry.async_get_device(identifiers={(DOMAIN, original_dev_id)})
|
||||
if new_dev_id != original_dev_id:
|
||||
@ -482,7 +492,8 @@ async def test_migrate_entity_ids(
|
||||
assert await hass.config_entries.async_setup(config_entry.entry_id)
|
||||
await hass.async_block_till_done()
|
||||
|
||||
assert entity_registry.async_get_entity_id(domain, DOMAIN, original_id) is None
|
||||
if original_id != new_id:
|
||||
assert entity_registry.async_get_entity_id(domain, DOMAIN, original_id) is None
|
||||
assert entity_registry.async_get_entity_id(domain, DOMAIN, new_id)
|
||||
|
||||
if new_dev_id != original_dev_id:
|
||||
|
Loading…
x
Reference in New Issue
Block a user