mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 03:07:37 +00:00
Allow timer.finish on paused timers (#134552)
* Add test for finishing already finished timer * Add test for finishing a paused timer * Allow canceled timer to be finished
This commit is contained in:
parent
7a556ac3ec
commit
17089e822e
@ -389,13 +389,15 @@ class Timer(collection.CollectionEntity, RestoreEntity):
|
||||
@callback
|
||||
def async_finish(self) -> None:
|
||||
"""Reset and updates the states, fire finished event."""
|
||||
if self._state != STATUS_ACTIVE or self._end is None:
|
||||
if self._state == STATUS_IDLE:
|
||||
return
|
||||
|
||||
if self._listener:
|
||||
self._listener()
|
||||
self._listener = None
|
||||
end = self._end
|
||||
if end is None:
|
||||
end = dt_util.utcnow().replace(microsecond=0)
|
||||
self._state = STATUS_IDLE
|
||||
self._end = None
|
||||
self._remaining = None
|
||||
|
@ -208,6 +208,12 @@ async def test_methods_and_events(hass: HomeAssistant) -> None:
|
||||
"event": EVENT_TIMER_FINISHED,
|
||||
"data": {},
|
||||
},
|
||||
{
|
||||
"call": SERVICE_FINISH,
|
||||
"state": STATUS_IDLE,
|
||||
"event": None,
|
||||
"data": {},
|
||||
},
|
||||
{
|
||||
"call": SERVICE_START,
|
||||
"state": STATUS_ACTIVE,
|
||||
@ -244,6 +250,18 @@ async def test_methods_and_events(hass: HomeAssistant) -> None:
|
||||
"event": EVENT_TIMER_RESTARTED,
|
||||
"data": {},
|
||||
},
|
||||
{
|
||||
"call": SERVICE_PAUSE,
|
||||
"state": STATUS_PAUSED,
|
||||
"event": EVENT_TIMER_PAUSED,
|
||||
"data": {},
|
||||
},
|
||||
{
|
||||
"call": SERVICE_FINISH,
|
||||
"state": STATUS_IDLE,
|
||||
"event": EVENT_TIMER_FINISHED,
|
||||
"data": {},
|
||||
},
|
||||
]
|
||||
|
||||
expected_events = 0
|
||||
|
Loading…
x
Reference in New Issue
Block a user