Always include platform in `config/entity_registry/list_for_display` (#88601)

Always include platform in config/entity_registry/list_for_display
pull/88615/head
Erik Montnemery 2023-02-22 17:59:52 +01:00 committed by GitHub
parent cab8a59be4
commit 1f34fa63ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 7 deletions

View File

@ -173,12 +173,10 @@ class RegistryEntry:
This version only includes what's needed for display.
Returns None if there's no data needed for display.
"""
display_dict: dict[str, Any] = {}
display_dict: dict[str, Any] = {"ei": self.entity_id, "pl": self.platform}
for key, attr_name in DISLAY_DICT_OPTIONAL:
if (attr_val := getattr(self, attr_name)) is not None:
display_dict[key] = attr_val
if "tk" in display_dict:
display_dict["pl"] = self.platform
if (category := self.entity_category) is not None:
display_dict["ec"] = ENTITY_CATEGORY_VALUE_TO_INDEX[category]
if self.hidden_by is not None:
@ -192,10 +190,6 @@ class RegistryEntry:
precision := sensor_options.get("suggested_display_precision")
) is not None:
display_dict["dp"] = precision
if not display_dict:
# We didn't gather any data needed for display
return None
display_dict["ei"] = self.entity_id
return display_dict
@property

View File

@ -239,23 +239,32 @@ async def test_list_entities_for_display(
"di": "device123",
"ei": "test_domain.nameless",
"en": None,
"pl": "test_platform",
},
{
"ai": "area52",
"di": "device123",
"ei": "test_domain.renamed",
"pl": "test_platform",
},
{
"ei": "test_domain.boring",
"pl": "test_platform",
},
{
"ei": "test_domain.hidden",
"hb": True,
"pl": "test_platform",
},
{
"dp": 0,
"ei": "sensor.default_precision",
"pl": "test_platform",
},
{
"dp": 0,
"ei": "sensor.user_precision",
"pl": "test_platform",
},
],
}
@ -296,6 +305,7 @@ async def test_list_entities_for_display(
"di": "device123",
"ei": "test_domain.test",
"en": "Hello World",
"pl": "test_platform",
},
],
}