Add WS command to help reset custom entity_id (#145504)
* Add WS command to help reset custom entity_id * Calculate suggested object id from entity properties * Fix logic and add additional tests * Adjust test * Update folder_watcher test * Handle current entity id matches the automatic entity id * Don't store calculated_object_id * Update snapshots * Update snapshots * Update test * Tweak logic for reusing current entity_id * Improve test * Don't assign same entity_id to several entities * Prioritize custom entity name * Update snapshots * Update snapshots
This commit is contained in:
@@ -1550,6 +1550,7 @@ async def test_entity_info_added_to_entity_registry(
|
||||
original_icon="nice:icon",
|
||||
original_name="best name",
|
||||
options=None,
|
||||
suggested_object_id=None,
|
||||
supported_features=5,
|
||||
translation_key="my_translation_key",
|
||||
unit_of_measurement=PERCENTAGE,
|
||||
|
||||
@@ -144,6 +144,7 @@ def test_get_or_create_updates_data(
|
||||
original_device_class="mock-device-class",
|
||||
original_icon="initial-original_icon",
|
||||
original_name="initial-original_name",
|
||||
suggested_object_id=None,
|
||||
supported_features=5,
|
||||
translation_key="initial-translation_key",
|
||||
unit_of_measurement="initial-unit_of_measurement",
|
||||
@@ -202,6 +203,7 @@ def test_get_or_create_updates_data(
|
||||
original_device_class="new-mock-device-class",
|
||||
original_icon="updated-original_icon",
|
||||
original_name="updated-original_name",
|
||||
suggested_object_id=None,
|
||||
supported_features=10,
|
||||
translation_key="updated-translation_key",
|
||||
unit_of_measurement="updated-unit_of_measurement",
|
||||
@@ -254,6 +256,7 @@ def test_get_or_create_updates_data(
|
||||
original_device_class=None,
|
||||
original_icon=None,
|
||||
original_name=None,
|
||||
suggested_object_id=None,
|
||||
supported_features=0, # supported_features is stored as an int
|
||||
translation_key=None,
|
||||
unit_of_measurement=None,
|
||||
@@ -514,6 +517,7 @@ async def test_load_bad_data(
|
||||
{
|
||||
"aliases": [],
|
||||
"area_id": None,
|
||||
"calculated_object_id": None,
|
||||
"capabilities": None,
|
||||
"categories": {},
|
||||
"config_entry_id": None,
|
||||
@@ -537,6 +541,7 @@ async def test_load_bad_data(
|
||||
"original_name": None,
|
||||
"platform": "super_platform",
|
||||
"previous_unique_id": None,
|
||||
"suggested_object_id": None,
|
||||
"supported_features": 0,
|
||||
"translation_key": None,
|
||||
"unique_id": 123, # Should trigger warning
|
||||
@@ -545,6 +550,7 @@ async def test_load_bad_data(
|
||||
{
|
||||
"aliases": [],
|
||||
"area_id": None,
|
||||
"calculated_object_id": None,
|
||||
"capabilities": None,
|
||||
"categories": {},
|
||||
"config_entry_id": None,
|
||||
@@ -568,6 +574,7 @@ async def test_load_bad_data(
|
||||
"original_name": None,
|
||||
"platform": "super_platform",
|
||||
"previous_unique_id": None,
|
||||
"suggested_object_id": None,
|
||||
"supported_features": 0,
|
||||
"translation_key": None,
|
||||
"unique_id": ["not", "valid"], # Should not load
|
||||
@@ -922,6 +929,7 @@ async def test_migration_1_1(hass: HomeAssistant, hass_storage: dict[str, Any])
|
||||
"original_name": None,
|
||||
"platform": "super_platform",
|
||||
"previous_unique_id": None,
|
||||
"suggested_object_id": None,
|
||||
"supported_features": 0,
|
||||
"translation_key": None,
|
||||
"unique_id": "very_unique",
|
||||
@@ -1101,6 +1109,7 @@ async def test_migration_1_11(
|
||||
"original_name": None,
|
||||
"platform": "super_platform",
|
||||
"previous_unique_id": None,
|
||||
"suggested_object_id": None,
|
||||
"supported_features": 0,
|
||||
"translation_key": None,
|
||||
"unique_id": "very_unique",
|
||||
@@ -2577,6 +2586,7 @@ async def test_restore_entity(
|
||||
original_device_class="device_class_2",
|
||||
original_icon="original_icon_2",
|
||||
original_name="original_name_2",
|
||||
suggested_object_id="suggested_2",
|
||||
supported_features=2,
|
||||
translation_key="translation_key_2",
|
||||
unit_of_measurement="unit_2",
|
||||
|
||||
Reference in New Issue
Block a user