mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 13:17:32 +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:
|
if entity.device_id in ch_device_ids:
|
||||||
ch = ch_device_ids[entity.device_id]
|
ch = ch_device_ids[entity.device_id]
|
||||||
id_parts = entity.unique_id.split("_", 2)
|
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):
|
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]}"
|
new_id = f"{host.unique_id}_{host.api.camera_uid(ch)}_{id_parts[2]}"
|
||||||
existing_entity = entity_reg.async_get_entity_id(
|
existing_entity = entity_reg.async_get_entity_id(
|
||||||
|
@ -424,6 +424,15 @@ async def test_removing_chime(
|
|||||||
True,
|
True,
|
||||||
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(
|
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, 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)})
|
assert device_registry.async_get_device(identifiers={(DOMAIN, original_dev_id)})
|
||||||
if new_dev_id != 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)
|
assert await hass.config_entries.async_setup(config_entry.entry_id)
|
||||||
await hass.async_block_till_done()
|
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)
|
assert entity_registry.async_get_entity_id(domain, DOMAIN, new_id)
|
||||||
|
|
||||||
if new_dev_id != original_dev_id:
|
if new_dev_id != original_dev_id:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user