mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +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
|
@callback
|
||||||
def async_finish(self) -> None:
|
def async_finish(self) -> None:
|
||||||
"""Reset and updates the states, fire finished event."""
|
"""Reset and updates the states, fire finished event."""
|
||||||
if self._state != STATUS_ACTIVE or self._end is None:
|
if self._state == STATUS_IDLE:
|
||||||
return
|
return
|
||||||
|
|
||||||
if self._listener:
|
if self._listener:
|
||||||
self._listener()
|
self._listener()
|
||||||
self._listener = None
|
self._listener = None
|
||||||
end = self._end
|
end = self._end
|
||||||
|
if end is None:
|
||||||
|
end = dt_util.utcnow().replace(microsecond=0)
|
||||||
self._state = STATUS_IDLE
|
self._state = STATUS_IDLE
|
||||||
self._end = None
|
self._end = None
|
||||||
self._remaining = None
|
self._remaining = None
|
||||||
|
@ -208,6 +208,12 @@ async def test_methods_and_events(hass: HomeAssistant) -> None:
|
|||||||
"event": EVENT_TIMER_FINISHED,
|
"event": EVENT_TIMER_FINISHED,
|
||||||
"data": {},
|
"data": {},
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"call": SERVICE_FINISH,
|
||||||
|
"state": STATUS_IDLE,
|
||||||
|
"event": None,
|
||||||
|
"data": {},
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"call": SERVICE_START,
|
"call": SERVICE_START,
|
||||||
"state": STATUS_ACTIVE,
|
"state": STATUS_ACTIVE,
|
||||||
@ -244,6 +250,18 @@ async def test_methods_and_events(hass: HomeAssistant) -> None:
|
|||||||
"event": EVENT_TIMER_RESTARTED,
|
"event": EVENT_TIMER_RESTARTED,
|
||||||
"data": {},
|
"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
|
expected_events = 0
|
||||||
|
Loading…
x
Reference in New Issue
Block a user