Raise ConditionError for time errors (#46250)
parent
5ce49c62b1
commit
888c9e120d
|
@ -518,7 +518,9 @@ def time(
|
||||||
elif isinstance(after, str):
|
elif isinstance(after, str):
|
||||||
after_entity = hass.states.get(after)
|
after_entity = hass.states.get(after)
|
||||||
if not after_entity:
|
if not after_entity:
|
||||||
return False
|
raise ConditionError(
|
||||||
|
f"Error in 'time' condition: The 'after' entity {after} is not available"
|
||||||
|
)
|
||||||
after = dt_util.dt.time(
|
after = dt_util.dt.time(
|
||||||
after_entity.attributes.get("hour", 23),
|
after_entity.attributes.get("hour", 23),
|
||||||
after_entity.attributes.get("minute", 59),
|
after_entity.attributes.get("minute", 59),
|
||||||
|
@ -530,7 +532,9 @@ def time(
|
||||||
elif isinstance(before, str):
|
elif isinstance(before, str):
|
||||||
before_entity = hass.states.get(before)
|
before_entity = hass.states.get(before)
|
||||||
if not before_entity:
|
if not before_entity:
|
||||||
return False
|
raise ConditionError(
|
||||||
|
f"Error in 'time' condition: The 'before' entity {before} is not available"
|
||||||
|
)
|
||||||
before = dt_util.dt.time(
|
before = dt_util.dt.time(
|
||||||
before_entity.attributes.get("hour", 23),
|
before_entity.attributes.get("hour", 23),
|
||||||
before_entity.attributes.get("minute", 59),
|
before_entity.attributes.get("minute", 59),
|
||||||
|
|
|
@ -334,8 +334,11 @@ async def test_time_using_input_datetime(hass):
|
||||||
hass, after="input_datetime.pm", before="input_datetime.am"
|
hass, after="input_datetime.pm", before="input_datetime.am"
|
||||||
)
|
)
|
||||||
|
|
||||||
assert not condition.time(hass, after="input_datetime.not_existing")
|
with pytest.raises(ConditionError):
|
||||||
assert not condition.time(hass, before="input_datetime.not_existing")
|
condition.time(hass, after="input_datetime.not_existing")
|
||||||
|
|
||||||
|
with pytest.raises(ConditionError):
|
||||||
|
condition.time(hass, before="input_datetime.not_existing")
|
||||||
|
|
||||||
|
|
||||||
async def test_if_numeric_state_raises_on_unavailable(hass, caplog):
|
async def test_if_numeric_state_raises_on_unavailable(hass, caplog):
|
||||||
|
|
Loading…
Reference in New Issue