mirror of
https://github.com/home-assistant/core.git
synced 2025-07-16 09:47:13 +00:00
Add significant change helper check_valid_float (#106005)
This commit is contained in:
parent
446f560b59
commit
29e30e796a
@ -147,6 +147,15 @@ def check_percentage_change(
|
||||
return _check_numeric_change(old_state, new_state, change, percentage_change)
|
||||
|
||||
|
||||
def check_valid_float(value: str | int | float) -> bool:
|
||||
"""Check if given value is a valid float."""
|
||||
try:
|
||||
float(value)
|
||||
except ValueError:
|
||||
return False
|
||||
return True
|
||||
|
||||
|
||||
class SignificantlyChangedChecker:
|
||||
"""Class to keep track of entities to see if they have significantly changed.
|
||||
|
||||
|
@ -72,3 +72,14 @@ async def test_significant_change_extra(hass: HomeAssistant, checker) -> None:
|
||||
State(ent_id, "200", attrs), extra_arg=1
|
||||
)
|
||||
assert checker.async_is_significant_change(State(ent_id, "200", attrs), extra_arg=2)
|
||||
|
||||
|
||||
async def test_check_valid_float(hass: HomeAssistant) -> None:
|
||||
"""Test extra significant checker works."""
|
||||
assert significant_change.check_valid_float("1")
|
||||
assert significant_change.check_valid_float("1.0")
|
||||
assert significant_change.check_valid_float(1)
|
||||
assert significant_change.check_valid_float(1.0)
|
||||
assert not significant_change.check_valid_float("")
|
||||
assert not significant_change.check_valid_float("invalid")
|
||||
assert not significant_change.check_valid_float("1.1.1")
|
||||
|
Loading…
x
Reference in New Issue
Block a user