Avoid clearing the attr cache in setter when nothing has changed (#106384)
This commit is contained in:
parent
50f64e053e
commit
eb3fde7261
2 changed files with 7 additions and 2 deletions
|
@ -227,6 +227,9 @@ class EntityPlatformState(Enum):
|
|||
REMOVED = auto()
|
||||
|
||||
|
||||
_SENTINEL = object()
|
||||
|
||||
|
||||
class EntityDescription(metaclass=FrozenOrThawed, frozen_or_thawed=True):
|
||||
"""A class that describes Home Assistant entities."""
|
||||
|
||||
|
@ -346,6 +349,8 @@ class CachedProperties(type):
|
|||
Also invalidates the corresponding cached_property by calling
|
||||
delattr on it.
|
||||
"""
|
||||
if getattr(o, private_attr_name, _SENTINEL) == val:
|
||||
return
|
||||
setattr(o, private_attr_name, val)
|
||||
try: # noqa: SIM105 suppress is much slower
|
||||
delattr(o, name)
|
||||
|
|
|
@ -706,7 +706,7 @@ async def test_state_updates_zone(
|
|||
resp = await client.post(
|
||||
"/api/konnected/device/112233445566",
|
||||
headers={"Authorization": "Bearer abcdefgh"},
|
||||
json={"zone": "5", "temp": 32, "addr": 1},
|
||||
json={"zone": "5", "temp": 32.0, "addr": 1},
|
||||
)
|
||||
assert resp.status == HTTPStatus.OK
|
||||
result = await resp.json()
|
||||
|
@ -863,7 +863,7 @@ async def test_state_updates_pin(
|
|||
resp = await client.post(
|
||||
"/api/konnected/device/112233445566",
|
||||
headers={"Authorization": "Bearer abcdefgh"},
|
||||
json={"pin": "7", "temp": 32, "addr": 1},
|
||||
json={"pin": "7", "temp": 32.0, "addr": 1},
|
||||
)
|
||||
assert resp.status == HTTPStatus.OK
|
||||
result = await resp.json()
|
||||
|
|
Loading…
Add table
Reference in a new issue