Clean up accessing event helpers via hass (#72011)

This commit is contained in:
Franck Nijhof 2022-05-17 19:36:29 +02:00 committed by GitHub
parent 993e76a44d
commit 8f4caf4141
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 65 additions and 64 deletions

View File

@ -16,6 +16,7 @@ from homeassistant.const import (
)
from homeassistant.core import HomeAssistant
from homeassistant.helpers.dispatcher import dispatcher_send
from homeassistant.helpers.event import async_track_point_in_time
from homeassistant.util import dt as dt_util
from .const import (
@ -65,8 +66,8 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
await hass.async_add_executor_job(controller.open, baud)
except NoDeviceError:
_LOGGER.debug("Failed to connect. Retrying in 5 seconds")
hass.helpers.event.async_track_point_in_time(
open_connection, dt_util.utcnow() + timedelta(seconds=5)
async_track_point_in_time(
hass, open_connection, dt_util.utcnow() + timedelta(seconds=5)
)
return
_LOGGER.debug("Established a connection with the alarmdecoder")

View File

@ -12,6 +12,7 @@ import async_timeout
from homeassistant.const import MATCH_ALL, STATE_ON
from homeassistant.core import HomeAssistant, State, callback
from homeassistant.helpers.aiohttp_client import async_get_clientsession
from homeassistant.helpers.event import async_track_state_change
from homeassistant.helpers.significant_change import create_checker
import homeassistant.util.dt as dt_util
@ -102,9 +103,7 @@ async def async_enable_proactive_mode(hass, smart_home_config):
hass, smart_home_config, alexa_changed_entity, alexa_properties
)
return hass.helpers.event.async_track_state_change(
MATCH_ALL, async_entity_state_listener
)
return async_track_state_change(hass, MATCH_ALL, async_entity_state_listener)
async def async_send_changereport_message(

View File

@ -54,6 +54,7 @@ from homeassistant.helpers.config_validation import ( # noqa: F401
)
from homeassistant.helpers.entity import Entity, EntityDescription
from homeassistant.helpers.entity_component import EntityComponent
from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.network import get_url
from homeassistant.helpers.typing import ConfigType
from homeassistant.loader import bind_hass
@ -398,7 +399,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
entity.async_update_token()
entity.async_write_ha_state()
hass.helpers.event.async_track_time_interval(update_tokens, TOKEN_CHANGE_INTERVAL)
async_track_time_interval(hass, update_tokens, TOKEN_CHANGE_INTERVAL)
component.async_register_entity_service(
SERVICE_ENABLE_MOTION, {}, "async_enable_motion_detection"

View File

@ -33,7 +33,7 @@ from homeassistant.helpers.dispatcher import (
async_dispatcher_send,
)
from homeassistant.helpers.entity import Entity
from homeassistant.helpers.event import async_call_later
from homeassistant.helpers.event import async_call_later, async_track_time_interval
from homeassistant.helpers.service import verify_domain_control
from homeassistant.helpers.storage import Store
from homeassistant.helpers.typing import ConfigType
@ -259,8 +259,8 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
async_load_platform(hass, Platform.WATER_HEATER, DOMAIN, {}, config)
)
hass.helpers.event.async_track_time_interval(
broker.async_update, config[DOMAIN][CONF_SCAN_INTERVAL]
async_track_time_interval(
hass, broker.async_update, config[DOMAIN][CONF_SCAN_INTERVAL]
)
setup_service_functions(hass, broker)

View File

@ -11,6 +11,7 @@ from homeassistant.const import CONF_ACCESS_TOKEN, CONF_SCAN_INTERVAL, CONF_URL
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.typing import ConfigType
_LOGGER = logging.getLogger(__name__)
@ -56,9 +57,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
"""Update the FreeDNS entry."""
await _update_freedns(hass, session, url, auth_token)
hass.helpers.event.async_track_time_interval(
update_domain_callback, update_interval
)
async_track_time_interval(hass, update_domain_callback, update_interval)
return True

View File

@ -6,7 +6,7 @@ import logging
from homeassistant.const import MATCH_ALL
from homeassistant.core import CALLBACK_TYPE, HassJob, HomeAssistant, callback
from homeassistant.helpers.event import async_call_later
from homeassistant.helpers.event import async_call_later, async_track_state_change
from homeassistant.helpers.significant_change import create_checker
from .const import DOMAIN
@ -136,9 +136,7 @@ def async_enable_report_state(hass: HomeAssistant, google_config: AbstractConfig
await google_config.async_report_state_all({"devices": {"states": entities}})
unsub = hass.helpers.event.async_track_state_change(
MATCH_ALL, async_entity_state_listener
)
unsub = async_track_state_change(hass, MATCH_ALL, async_entity_state_listener)
unsub = async_call_later(hass, INITIAL_REPORT_DELAY, initial_report)

View File

@ -11,6 +11,7 @@ from homeassistant.const import CONF_DOMAIN, CONF_PASSWORD, CONF_TIMEOUT, CONF_U
from homeassistant.core import HomeAssistant
from homeassistant.helpers.aiohttp_client import async_get_clientsession
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.typing import ConfigType
_LOGGER = logging.getLogger(__name__)
@ -56,7 +57,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
"""Update the Google Domains entry."""
await _update_google_domains(hass, session, domain, user, password, timeout)
hass.helpers.event.async_track_time_interval(update_domain_interval, INTERVAL)
async_track_time_interval(hass, update_domain_interval, INTERVAL)
return True

View File

@ -41,6 +41,7 @@ from homeassistant.helpers.device_registry import (
async_get_registry,
)
from homeassistant.helpers.entity import DeviceInfo
from homeassistant.helpers.event import async_track_point_in_utc_time
from homeassistant.helpers.storage import Store
from homeassistant.helpers.typing import ConfigType
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
@ -638,8 +639,8 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool: # noqa:
except HassioAPIError as err:
_LOGGER.warning("Can't read Supervisor data: %s", err)
hass.helpers.event.async_track_point_in_utc_time(
update_info_data, utcnow() + HASSIO_UPDATE_INTERVAL
async_track_point_in_utc_time(
hass, update_info_data, utcnow() + HASSIO_UPDATE_INTERVAL
)
# Fetch data

View File

@ -11,6 +11,7 @@ from pyhomematic.devicetypes.generic import HMGeneric
from homeassistant.const import ATTR_NAME
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.entity import Entity, EntityDescription
from homeassistant.helpers.event import track_time_interval
from .const import (
ATTR_ADDRESS,
@ -222,12 +223,10 @@ class HMHub(Entity):
self._state = None
# Load data
self.hass.helpers.event.track_time_interval(self._update_hub, SCAN_INTERVAL_HUB)
track_time_interval(self.hass, self._update_hub, SCAN_INTERVAL_HUB)
self.hass.add_job(self._update_hub, None)
self.hass.helpers.event.track_time_interval(
self._update_variables, SCAN_INTERVAL_VARIABLES
)
track_time_interval(self.hass, self._update_variables, SCAN_INTERVAL_VARIABLES)
self.hass.add_job(self._update_variables, None)
@property

View File

@ -16,6 +16,7 @@ from homeassistant.helpers.aiohttp_client import (
async_get_clientsession,
)
import homeassistant.helpers.config_validation as cv
from homeassistant.helpers.event import async_track_time_interval
from homeassistant.helpers.typing import ConfigType
_LOGGER = logging.getLogger(__name__)
@ -76,7 +77,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
"""Update the NO-IP entry."""
await _update_no_ip(hass, session, domain, auth_str, timeout)
hass.helpers.event.async_track_time_interval(update_domain_interval, INTERVAL)
async_track_time_interval(hass, update_domain_interval, INTERVAL)
return True

View File

@ -79,7 +79,11 @@ from homeassistant.core import HomeAssistant, callback
from homeassistant.exceptions import TemplateError
from homeassistant.helpers import config_validation as cv
from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.helpers.event import TrackTemplate, async_track_template_result
from homeassistant.helpers.event import (
TrackTemplate,
async_track_state_change_event,
async_track_template_result,
)
from homeassistant.helpers.reload import async_setup_reload_service
from homeassistant.helpers.service import async_call_from_config
from homeassistant.helpers.typing import ConfigType, DiscoveryInfoType
@ -202,8 +206,8 @@ class UniversalMediaPlayer(MediaPlayerEntity):
depend.append(entity[0])
self.async_on_remove(
self.hass.helpers.event.async_track_state_change_event(
list(set(depend)), _async_on_dependency_update
async_track_state_change_event(
self.hass, list(set(depend)), _async_on_dependency_update
)
)

View File

@ -15,6 +15,10 @@ from homeassistant import core
from homeassistant.components.websocket_api.const import JSON_DUMP
from homeassistant.const import EVENT_STATE_CHANGED
from homeassistant.helpers.entityfilter import convert_include_exclude_filter
from homeassistant.helpers.event import (
async_track_state_change,
async_track_state_change_event,
)
from homeassistant.helpers.json import JSONEncoder
# mypy: allow-untyped-calls, allow-untyped-defs, no-check-untyped-defs
@ -134,9 +138,7 @@ async def state_changed_helper(hass):
event.set()
for idx in range(1000):
hass.helpers.event.async_track_state_change(
f"{entity_id}{idx}", listener, "off", "on"
)
async_track_state_change(hass, f"{entity_id}{idx}", listener, "off", "on")
event_data = {
"entity_id": f"{entity_id}0",
"old_state": core.State(entity_id, "off"),
@ -166,8 +168,8 @@ async def state_changed_event_helper(hass):
nonlocal count
count += 1
hass.helpers.event.async_track_state_change_event(
[f"{entity_id}{idx}" for idx in range(1000)], listener
async_track_state_change_event(
hass, [f"{entity_id}{idx}" for idx in range(1000)], listener
)
event_data = {
@ -201,8 +203,8 @@ async def state_changed_event_filter_helper(hass):
nonlocal count
count += 1
hass.helpers.event.async_track_state_change_event(
[f"{entity_id}{idx}" for idx in range(1000)], listener
async_track_state_change_event(
hass, [f"{entity_id}{idx}" for idx in range(1000)], listener
)
event_data = {

View File

@ -16,6 +16,7 @@ from homeassistant.const import (
STATE_UNKNOWN,
)
from homeassistant.core import Context, callback
from homeassistant.helpers.event import async_track_state_change_event
from homeassistant.setup import async_setup_component
from tests.common import get_fixture_path
@ -709,8 +710,8 @@ async def test_template_triggers(hass):
assert hass.states.get("binary_sensor.test_binary").state == STATE_OFF
events = []
hass.helpers.event.async_track_state_change_event(
"binary_sensor.test_binary", callback(lambda event: events.append(event))
async_track_state_change_event(
hass, "binary_sensor.test_binary", callback(lambda event: events.append(event))
)
context = Context()
@ -748,8 +749,8 @@ async def test_state_triggers(hass):
assert hass.states.get("binary_sensor.test_binary").state == STATE_OFF
events = []
hass.helpers.event.async_track_state_change_event(
"binary_sensor.test_binary", callback(lambda event: events.append(event))
async_track_state_change_event(
hass, "binary_sensor.test_binary", callback(lambda event: events.append(event))
)
context = Context()

View File

@ -21,6 +21,7 @@ from homeassistant.const import (
STATE_UNKNOWN,
)
from homeassistant.core import Context, callback
from homeassistant.helpers.event import async_track_state_change_event
from homeassistant.setup import async_setup_component
from tests.common import async_mock_service, get_fixture_path
@ -1136,8 +1137,8 @@ async def test_master_state_with_template(hass):
events = []
hass.helpers.event.async_track_state_change_event(
"media_player.tv", callback(lambda event: events.append(event))
async_track_state_change_event(
hass, "media_player.tv", callback(lambda event: events.append(event))
)
context = Context()

View File

@ -21,6 +21,7 @@ from homeassistant.helpers.event import (
TrackTemplate,
TrackTemplateResult,
async_call_later,
async_track_entity_registry_updated_event,
async_track_point_in_time,
async_track_point_in_utc_time,
async_track_same_state,
@ -4230,12 +4231,10 @@ async def test_track_point_in_utc_time_cancel(hass):
with pytest.raises(TypeError):
track_point_in_utc_time("nothass", run_callback, utc_now)
unsub1 = hass.helpers.event.track_point_in_utc_time(
run_callback, utc_now + timedelta(seconds=0.1)
)
hass.helpers.event.track_point_in_utc_time(
run_callback, utc_now + timedelta(seconds=0.1)
unsub1 = track_point_in_utc_time(
hass, run_callback, utc_now + timedelta(seconds=0.1)
)
track_point_in_utc_time(hass, run_callback, utc_now + timedelta(seconds=0.1))
unsub1()
@ -4262,12 +4261,10 @@ async def test_async_track_point_in_time_cancel(hass):
utc_now = dt_util.utcnow()
hst_now = utc_now.astimezone(hst_tz)
unsub1 = hass.helpers.event.async_track_point_in_time(
run_callback, hst_now + timedelta(seconds=0.1)
)
hass.helpers.event.async_track_point_in_time(
run_callback, hst_now + timedelta(seconds=0.1)
unsub1 = async_track_point_in_time(
hass, run_callback, hst_now + timedelta(seconds=0.1)
)
async_track_point_in_time(hass, run_callback, hst_now + timedelta(seconds=0.1))
unsub1()
@ -4292,11 +4289,9 @@ async def test_async_track_entity_registry_updated_event(hass):
def run_callback(event):
event_data.append(event.data)
unsub1 = hass.helpers.event.async_track_entity_registry_updated_event(
entity_id, run_callback
)
unsub2 = hass.helpers.event.async_track_entity_registry_updated_event(
new_entity_id, run_callback
unsub1 = async_track_entity_registry_updated_event(hass, entity_id, run_callback)
unsub2 = async_track_entity_registry_updated_event(
hass, new_entity_id, run_callback
)
hass.bus.async_fire(
EVENT_ENTITY_REGISTRY_UPDATED, {"action": "create", "entity_id": entity_id}
@ -4362,12 +4357,10 @@ async def test_async_track_entity_registry_updated_event_with_a_callback_that_th
def failing_callback(event):
raise ValueError
unsub1 = hass.helpers.event.async_track_entity_registry_updated_event(
entity_id, failing_callback
)
unsub2 = hass.helpers.event.async_track_entity_registry_updated_event(
entity_id, run_callback
unsub1 = async_track_entity_registry_updated_event(
hass, entity_id, failing_callback
)
unsub2 = async_track_entity_registry_updated_event(hass, entity_id, run_callback)
hass.bus.async_fire(
EVENT_ENTITY_REGISTRY_UPDATED, {"action": "create", "entity_id": entity_id}
)
@ -4380,11 +4373,11 @@ async def test_async_track_entity_registry_updated_event_with_a_callback_that_th
async def test_async_track_entity_registry_updated_event_with_empty_list(hass):
"""Test async_track_entity_registry_updated_event passing an empty list of entities."""
unsub_single = hass.helpers.event.async_track_entity_registry_updated_event(
[], ha.callback(lambda event: None)
unsub_single = async_track_entity_registry_updated_event(
hass, [], ha.callback(lambda event: None)
)
unsub_single2 = hass.helpers.event.async_track_entity_registry_updated_event(
[], ha.callback(lambda event: None)
unsub_single2 = async_track_entity_registry_updated_event(
hass, [], ha.callback(lambda event: None)
)
unsub_single2()