From d6f1405874c9b8c4fe598227cd8a6f610856b245 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Wed, 13 Mar 2024 00:06:30 -1000 Subject: [PATCH] Migrate one time listeners to use async_run_hass_job (#113179) --- homeassistant/core.py | 12 ++++++------ tests/test_core.py | 2 +- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/homeassistant/core.py b/homeassistant/core.py index 2fe50e4e50b..3d2df054036 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -1264,7 +1264,7 @@ _FilterableJobType = tuple[ @dataclass(slots=True) class _OneTimeListener: hass: HomeAssistant - listener: Callable[[Event], Coroutine[Any, Any, None] | None] + listener_job: HassJob[[Event], Coroutine[Any, Any, None] | None] remove: CALLBACK_TYPE | None = None @callback @@ -1275,14 +1275,14 @@ class _OneTimeListener: return self.remove() self.remove = None - self.hass.async_run_job(self.listener, event) + self.hass.async_run_hass_job(self.listener_job, event) def __repr__(self) -> str: """Return the representation of the listener and source module.""" - module = inspect.getmodule(self.listener) + module = inspect.getmodule(self.listener_job.target) if module: - return f"<_OneTimeListener {module.__name__}:{self.listener}>" - return f"<_OneTimeListener {self.listener}>" + return f"<_OneTimeListener {module.__name__}:{self.listener_job.target}>" + return f"<_OneTimeListener {self.listener_job.target}>" class EventBus: @@ -1472,7 +1472,7 @@ class EventBus: This method must be run in the event loop. """ - one_time_listener = _OneTimeListener(self._hass, listener) + one_time_listener = _OneTimeListener(self._hass, HassJob(listener)) remove = self._async_listen_filterable_job( event_type, ( diff --git a/tests/test_core.py b/tests/test_core.py index 3d72c7481f5..d30ccdd018b 100644 --- a/tests/test_core.py +++ b/tests/test_core.py @@ -3098,7 +3098,7 @@ def test_one_time_listener_repr(hass: HomeAssistant) -> None: def _listener(event: ha.Event): """Test listener.""" - one_time_listener = ha._OneTimeListener(hass, _listener) + one_time_listener = ha._OneTimeListener(hass, HassJob(_listener)) repr_str = repr(one_time_listener) assert "OneTimeListener" in repr_str assert "test_core" in repr_str