mirror of
https://github.com/home-assistant/core.git
synced 2025-12-24 21:06:19 +00:00
Improve entity cached attributes (#128876)
This commit is contained in:
@@ -2314,7 +2314,12 @@ async def test_update_capabilities_too_often_cooldown(
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
("property", "default_value", "values"), [("attribution", None, ["abcd", "efgh"])]
|
||||
("property", "default_value", "values"),
|
||||
[
|
||||
("attribution", None, ["abcd", "efgh"]),
|
||||
("attribution", None, [True, 1]),
|
||||
("attribution", None, [1.0, 1]),
|
||||
],
|
||||
)
|
||||
async def test_cached_entity_properties(
|
||||
hass: HomeAssistant, property: str, default_value: Any, values: Any
|
||||
@@ -2323,22 +2328,30 @@ async def test_cached_entity_properties(
|
||||
ent1 = entity.Entity()
|
||||
ent2 = entity.Entity()
|
||||
assert getattr(ent1, property) == default_value
|
||||
assert type(getattr(ent1, property)) is type(default_value)
|
||||
assert getattr(ent2, property) == default_value
|
||||
assert type(getattr(ent2, property)) is type(default_value)
|
||||
|
||||
# Test set
|
||||
setattr(ent1, f"_attr_{property}", values[0])
|
||||
assert getattr(ent1, property) == values[0]
|
||||
assert type(getattr(ent1, property)) is type(values[0])
|
||||
assert getattr(ent2, property) == default_value
|
||||
assert type(getattr(ent2, property)) is type(default_value)
|
||||
|
||||
# Test update
|
||||
setattr(ent1, f"_attr_{property}", values[1])
|
||||
assert getattr(ent1, property) == values[1]
|
||||
assert type(getattr(ent1, property)) is type(values[1])
|
||||
assert getattr(ent2, property) == default_value
|
||||
assert type(getattr(ent2, property)) is type(default_value)
|
||||
|
||||
# Test delete
|
||||
delattr(ent1, f"_attr_{property}")
|
||||
assert getattr(ent1, property) == default_value
|
||||
assert type(getattr(ent1, property)) is type(default_value)
|
||||
assert getattr(ent2, property) == default_value
|
||||
assert type(getattr(ent2, property)) is type(default_value)
|
||||
|
||||
|
||||
async def test_cached_entity_property_delete_attr(hass: HomeAssistant) -> None:
|
||||
|
||||
Reference in New Issue
Block a user