Clean up accessing dispatcher helpers via hass (#72014)
Clean up accessing ditpatcher helpers via hasspull/72016/head
parent
0b09376360
commit
c8f700c803
|
@ -15,6 +15,7 @@ from homeassistant.const import (
|
|||
Platform,
|
||||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers.dispatcher import dispatcher_send
|
||||
from homeassistant.util import dt as dt_util
|
||||
|
||||
from .const import (
|
||||
|
@ -81,23 +82,23 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||
|
||||
def handle_message(sender, message):
|
||||
"""Handle message from AlarmDecoder."""
|
||||
hass.helpers.dispatcher.dispatcher_send(SIGNAL_PANEL_MESSAGE, message)
|
||||
dispatcher_send(hass, SIGNAL_PANEL_MESSAGE, message)
|
||||
|
||||
def handle_rfx_message(sender, message):
|
||||
"""Handle RFX message from AlarmDecoder."""
|
||||
hass.helpers.dispatcher.dispatcher_send(SIGNAL_RFX_MESSAGE, message)
|
||||
dispatcher_send(hass, SIGNAL_RFX_MESSAGE, message)
|
||||
|
||||
def zone_fault_callback(sender, zone):
|
||||
"""Handle zone fault from AlarmDecoder."""
|
||||
hass.helpers.dispatcher.dispatcher_send(SIGNAL_ZONE_FAULT, zone)
|
||||
dispatcher_send(hass, SIGNAL_ZONE_FAULT, zone)
|
||||
|
||||
def zone_restore_callback(sender, zone):
|
||||
"""Handle zone restore from AlarmDecoder."""
|
||||
hass.helpers.dispatcher.dispatcher_send(SIGNAL_ZONE_RESTORE, zone)
|
||||
dispatcher_send(hass, SIGNAL_ZONE_RESTORE, zone)
|
||||
|
||||
def handle_rel_message(sender, message):
|
||||
"""Handle relay or zone expander message from AlarmDecoder."""
|
||||
hass.helpers.dispatcher.dispatcher_send(SIGNAL_REL_MESSAGE, message)
|
||||
dispatcher_send(hass, SIGNAL_REL_MESSAGE, message)
|
||||
|
||||
baud = ad_connection.get(CONF_DEVICE_BAUD)
|
||||
if protocol == PROTOCOL_SOCKET:
|
||||
|
|
|
@ -15,6 +15,7 @@ from homeassistant.const import (
|
|||
)
|
||||
from homeassistant.core import HomeAssistant
|
||||
from homeassistant.helpers import config_validation as cv
|
||||
from homeassistant.helpers.dispatcher import dispatcher_send
|
||||
from homeassistant.helpers.typing import ConfigType
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
@ -70,7 +71,7 @@ class AquaLogicProcessor(threading.Thread):
|
|||
|
||||
def data_changed(self, panel):
|
||||
"""Aqualogic data changed callback."""
|
||||
self._hass.helpers.dispatcher.dispatcher_send(UPDATE_TOPIC)
|
||||
dispatcher_send(self._hass, UPDATE_TOPIC)
|
||||
|
||||
def run(self):
|
||||
"""Event thread."""
|
||||
|
|
|
@ -11,6 +11,7 @@ from homeassistant.config_entries import ConfigEntry
|
|||
from homeassistant.const import CONF_HOST, CONF_PORT, EVENT_HOMEASSISTANT_STOP, Platform
|
||||
from homeassistant.core import HomeAssistant
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||
from homeassistant.helpers.typing import ConfigType
|
||||
|
||||
from .const import (
|
||||
|
@ -81,7 +82,7 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||
|
||||
async def _run_client(hass, client, interval):
|
||||
def _listen(_):
|
||||
hass.helpers.dispatcher.async_dispatcher_send(SIGNAL_CLIENT_DATA, client.host)
|
||||
async_dispatcher_send(hass, SIGNAL_CLIENT_DATA, client.host)
|
||||
|
||||
while True:
|
||||
try:
|
||||
|
@ -89,9 +90,7 @@ async def _run_client(hass, client, interval):
|
|||
await client.start()
|
||||
|
||||
_LOGGER.debug("Client connected %s", client.host)
|
||||
hass.helpers.dispatcher.async_dispatcher_send(
|
||||
SIGNAL_CLIENT_STARTED, client.host
|
||||
)
|
||||
async_dispatcher_send(hass, SIGNAL_CLIENT_STARTED, client.host)
|
||||
|
||||
try:
|
||||
with client.listen(_listen):
|
||||
|
@ -100,9 +99,7 @@ async def _run_client(hass, client, interval):
|
|||
await client.stop()
|
||||
|
||||
_LOGGER.debug("Client disconnected %s", client.host)
|
||||
hass.helpers.dispatcher.async_dispatcher_send(
|
||||
SIGNAL_CLIENT_STOPPED, client.host
|
||||
)
|
||||
async_dispatcher_send(hass, SIGNAL_CLIENT_STOPPED, client.host)
|
||||
|
||||
except ConnectionFailed:
|
||||
await asyncio.sleep(interval)
|
||||
|
|
|
@ -18,6 +18,7 @@ from homeassistant.components.media_player.errors import BrowseError
|
|||
from homeassistant.config_entries import ConfigEntry
|
||||
from homeassistant.const import ATTR_ENTITY_ID, STATE_OFF, STATE_ON
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||
from homeassistant.helpers.entity import DeviceInfo
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
|
||||
|
@ -127,21 +128,15 @@ class ArcamFmj(MediaPlayerEntity):
|
|||
self.async_schedule_update_ha_state(force_refresh=True)
|
||||
|
||||
self.async_on_remove(
|
||||
self.hass.helpers.dispatcher.async_dispatcher_connect(
|
||||
SIGNAL_CLIENT_DATA, _data
|
||||
)
|
||||
async_dispatcher_connect(self.hass, SIGNAL_CLIENT_DATA, _data)
|
||||
)
|
||||
|
||||
self.async_on_remove(
|
||||
self.hass.helpers.dispatcher.async_dispatcher_connect(
|
||||
SIGNAL_CLIENT_STARTED, _started
|
||||
)
|
||||
async_dispatcher_connect(self.hass, SIGNAL_CLIENT_STARTED, _started)
|
||||
)
|
||||
|
||||
self.async_on_remove(
|
||||
self.hass.helpers.dispatcher.async_dispatcher_connect(
|
||||
SIGNAL_CLIENT_STOPPED, _stopped
|
||||
)
|
||||
async_dispatcher_connect(self.hass, SIGNAL_CLIENT_STOPPED, _stopped)
|
||||
)
|
||||
|
||||
async def async_update(self):
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
from enocean.protocol.packet import Packet
|
||||
from enocean.utils import combine_hex
|
||||
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect, dispatcher_send
|
||||
from homeassistant.helpers.entity import Entity
|
||||
|
||||
from .const import SIGNAL_RECEIVE_MESSAGE, SIGNAL_SEND_MESSAGE
|
||||
|
@ -37,4 +37,4 @@ class EnOceanEntity(Entity):
|
|||
"""Send a command via the EnOcean dongle."""
|
||||
|
||||
packet = Packet(packet_type, data=data, optional=optional)
|
||||
self.hass.helpers.dispatcher.dispatcher_send(SIGNAL_SEND_MESSAGE, packet)
|
||||
dispatcher_send(self.hass, SIGNAL_SEND_MESSAGE, packet)
|
||||
|
|
|
@ -7,7 +7,7 @@ from enocean.communicators import SerialCommunicator
|
|||
from enocean.protocol.packet import RadioPacket
|
||||
import serial
|
||||
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect, dispatcher_send
|
||||
|
||||
from .const import SIGNAL_RECEIVE_MESSAGE, SIGNAL_SEND_MESSAGE
|
||||
|
||||
|
@ -58,7 +58,7 @@ class EnOceanDongle:
|
|||
|
||||
if isinstance(packet, RadioPacket):
|
||||
_LOGGER.debug("Received radio packet: %s", packet)
|
||||
self.hass.helpers.dispatcher.dispatcher_send(SIGNAL_RECEIVE_MESSAGE, packet)
|
||||
dispatcher_send(self.hass, SIGNAL_RECEIVE_MESSAGE, packet)
|
||||
|
||||
|
||||
def detect():
|
||||
|
|
|
@ -19,6 +19,7 @@ from aiohomekit.model.services import Service
|
|||
from homeassistant.const import ATTR_VIA_DEVICE
|
||||
from homeassistant.core import CALLBACK_TYPE, callback
|
||||
from homeassistant.helpers import device_registry as dr
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||
from homeassistant.helpers.entity import DeviceInfo
|
||||
from homeassistant.helpers.event import async_track_time_interval
|
||||
|
||||
|
@ -162,7 +163,7 @@ class HKDevice:
|
|||
if self.available == available:
|
||||
return
|
||||
self.available = available
|
||||
self.hass.helpers.dispatcher.async_dispatcher_send(self.signal_state_updated)
|
||||
async_dispatcher_send(self.hass, self.signal_state_updated)
|
||||
|
||||
async def async_setup(self) -> bool:
|
||||
"""Prepare to use a paired HomeKit device in Home Assistant."""
|
||||
|
@ -568,7 +569,7 @@ class HKDevice:
|
|||
# For now we update both
|
||||
self.entity_map.process_changes(new_values_dict)
|
||||
|
||||
self.hass.helpers.dispatcher.async_dispatcher_send(self.signal_state_updated)
|
||||
async_dispatcher_send(self.hass, self.signal_state_updated)
|
||||
|
||||
async def get_characteristics(self, *args, **kwargs) -> dict[str, Any]:
|
||||
"""Read latest state from homekit accessory."""
|
||||
|
|
|
@ -353,8 +353,8 @@ async def webhook_render_template(hass, config_entry, data):
|
|||
)
|
||||
async def webhook_update_location(hass, config_entry, data):
|
||||
"""Handle an update location webhook."""
|
||||
hass.helpers.dispatcher.async_dispatcher_send(
|
||||
SIGNAL_LOCATION_UPDATE.format(config_entry.entry_id), data
|
||||
async_dispatcher_send(
|
||||
hass, SIGNAL_LOCATION_UPDATE.format(config_entry.entry_id), data
|
||||
)
|
||||
return empty_okay_response()
|
||||
|
||||
|
|
|
@ -18,7 +18,10 @@ from homeassistant.const import (
|
|||
)
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||
from homeassistant.helpers.dispatcher import (
|
||||
async_dispatcher_connect,
|
||||
async_dispatcher_send,
|
||||
)
|
||||
from homeassistant.helpers.typing import ConfigType
|
||||
from homeassistant.setup import async_when_setup
|
||||
|
||||
|
@ -140,7 +143,7 @@ async def async_connect_mqtt(hass, component):
|
|||
return
|
||||
|
||||
message["topic"] = msg.topic
|
||||
hass.helpers.dispatcher.async_dispatcher_send(DOMAIN, hass, context, message)
|
||||
async_dispatcher_send(hass, DOMAIN, hass, context, message)
|
||||
|
||||
await mqtt.async_subscribe(hass, context.mqtt_topic, async_handle_mqtt_message, 1)
|
||||
|
||||
|
@ -179,7 +182,7 @@ async def handle_webhook(hass, webhook_id, request):
|
|||
# Keep it as a 200 response so the incorrect packet is discarded
|
||||
return json_response([])
|
||||
|
||||
hass.helpers.dispatcher.async_dispatcher_send(DOMAIN, hass, context, message)
|
||||
async_dispatcher_send(hass, DOMAIN, hass, context, message)
|
||||
|
||||
response = []
|
||||
|
||||
|
|
|
@ -21,7 +21,10 @@ from homeassistant.core import HomeAssistant, callback
|
|||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.discovery import load_platform
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||
from homeassistant.helpers.dispatcher import (
|
||||
async_dispatcher_connect,
|
||||
async_dispatcher_send,
|
||||
)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.helpers.typing import ConfigType
|
||||
|
||||
|
@ -150,7 +153,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||
def callback_value_changed(_qsd, qsid, _val):
|
||||
"""Update entity values based on device change."""
|
||||
_LOGGER.debug("Dispatch %s (update from devices)", qsid)
|
||||
hass.helpers.dispatcher.async_dispatcher_send(qsid, None)
|
||||
async_dispatcher_send(hass, qsid, None)
|
||||
|
||||
session = async_get_clientsession(hass)
|
||||
qsusb = QSUsb(
|
||||
|
@ -221,7 +224,7 @@ async def async_setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||
|
||||
if qspacket[QS_ID] in sensor_ids:
|
||||
_LOGGER.debug("Dispatch %s ((%s))", qspacket[QS_ID], qspacket)
|
||||
hass.helpers.dispatcher.async_dispatcher_send(qspacket[QS_ID], qspacket)
|
||||
async_dispatcher_send(hass, qspacket[QS_ID], qspacket)
|
||||
|
||||
# Update all ha_objects
|
||||
hass.async_add_job(qsusb.update_from_devices)
|
||||
|
|
|
@ -30,7 +30,10 @@ from homeassistant.helpers.device_registry import (
|
|||
DeviceEntry,
|
||||
DeviceRegistry,
|
||||
)
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||
from homeassistant.helpers.dispatcher import (
|
||||
async_dispatcher_connect,
|
||||
async_dispatcher_send,
|
||||
)
|
||||
from homeassistant.helpers.entity import DeviceInfo, Entity
|
||||
from homeassistant.helpers.entity_platform import AddEntitiesCallback
|
||||
from homeassistant.helpers.restore_state import RestoreEntity
|
||||
|
@ -214,7 +217,7 @@ async def async_setup_internal(hass, entry: ConfigEntry):
|
|||
event_data[ATTR_DEVICE_ID] = device_entry.id
|
||||
|
||||
# Callback to HA registered components.
|
||||
hass.helpers.dispatcher.async_dispatcher_send(SIGNAL_EVENT, event, device_id)
|
||||
async_dispatcher_send(hass, SIGNAL_EVENT, event, device_id)
|
||||
|
||||
# Signal event to any other listeners
|
||||
hass.bus.async_fire(EVENT_RFXTRX_EVENT, event_data)
|
||||
|
|
|
@ -17,7 +17,10 @@ from homeassistant.const import CONF_HOST, CONF_PORT, EVENT_HOMEASSISTANT_STOP
|
|||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.helpers import discovery
|
||||
import homeassistant.helpers.config_validation as cv
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_connect
|
||||
from homeassistant.helpers.dispatcher import (
|
||||
async_dispatcher_connect,
|
||||
async_dispatcher_send,
|
||||
)
|
||||
from homeassistant.helpers.entity import Entity
|
||||
from homeassistant.helpers.typing import ConfigType
|
||||
|
||||
|
@ -147,8 +150,8 @@ def setup(hass: HomeAssistant, config: ConfigType) -> bool:
|
|||
@callback
|
||||
def async_handle_callback(tellcore_id, tellcore_command, tellcore_data, cid):
|
||||
"""Handle the actual callback from Tellcore."""
|
||||
hass.helpers.dispatcher.async_dispatcher_send(
|
||||
SIGNAL_TELLCORE_CALLBACK, tellcore_id, tellcore_command, tellcore_data
|
||||
async_dispatcher_send(
|
||||
hass, SIGNAL_TELLCORE_CALLBACK, tellcore_id, tellcore_command, tellcore_data
|
||||
)
|
||||
|
||||
# Register callback
|
||||
|
|
|
@ -16,6 +16,7 @@ from homeassistant.const import (
|
|||
)
|
||||
from homeassistant.core import HomeAssistant, callback
|
||||
from homeassistant.helpers import config_validation as cv, discovery
|
||||
from homeassistant.helpers.dispatcher import dispatcher_send
|
||||
from homeassistant.helpers.typing import ConfigType
|
||||
|
||||
_LOGGER = logging.getLogger(__name__)
|
||||
|
@ -156,5 +157,5 @@ class WaterFurnaceData(threading.Thread):
|
|||
self._reconnect()
|
||||
|
||||
else:
|
||||
self.hass.helpers.dispatcher.dispatcher_send(UPDATE_TOPIC)
|
||||
dispatcher_send(self.hass, UPDATE_TOPIC)
|
||||
time.sleep(SCAN_INTERVAL.total_seconds())
|
||||
|
|
|
@ -14,6 +14,7 @@ import async_timeout
|
|||
from homeassistant.components.http import HomeAssistantView
|
||||
from homeassistant.const import EVENT_HOMEASSISTANT_STOP
|
||||
from homeassistant.core import Event, HomeAssistant, callback
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||
from homeassistant.helpers.event import async_call_later
|
||||
|
||||
from .auth import AuthPhase, auth_required_message
|
||||
|
@ -203,9 +204,7 @@ class WebSocketHandler:
|
|||
self.hass.data[DATA_CONNECTIONS] = (
|
||||
self.hass.data.get(DATA_CONNECTIONS, 0) + 1
|
||||
)
|
||||
self.hass.helpers.dispatcher.async_dispatcher_send(
|
||||
SIGNAL_WEBSOCKET_CONNECTED
|
||||
)
|
||||
async_dispatcher_send(self.hass, SIGNAL_WEBSOCKET_CONNECTED)
|
||||
|
||||
# Command phase
|
||||
while not wsock.closed:
|
||||
|
@ -258,8 +257,6 @@ class WebSocketHandler:
|
|||
|
||||
if connection is not None:
|
||||
self.hass.data[DATA_CONNECTIONS] -= 1
|
||||
self.hass.helpers.dispatcher.async_dispatcher_send(
|
||||
SIGNAL_WEBSOCKET_DISCONNECTED
|
||||
)
|
||||
async_dispatcher_send(self.hass, SIGNAL_WEBSOCKET_DISCONNECTED)
|
||||
|
||||
return wsock
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
"""Tests for arcam fmj receivers."""
|
||||
from math import isclose
|
||||
from unittest.mock import ANY, MagicMock, PropertyMock, patch
|
||||
from unittest.mock import ANY, PropertyMock, patch
|
||||
|
||||
from arcam.fmj import DecodeMode2CH, DecodeModeMCH, SourceCodes
|
||||
import pytest
|
||||
|
@ -303,22 +303,12 @@ async def test_added_to_hass(player, state):
|
|||
SIGNAL_CLIENT_STOPPED,
|
||||
)
|
||||
|
||||
connectors = {}
|
||||
|
||||
def _connect(signal, fun):
|
||||
connectors[signal] = fun
|
||||
|
||||
player.hass = MagicMock()
|
||||
player.hass.helpers.dispatcher.async_dispatcher_connect.side_effects = _connect
|
||||
|
||||
with patch(
|
||||
"homeassistant.components.arcam_fmj.media_player.async_dispatcher_connect"
|
||||
) as connect:
|
||||
await player.async_added_to_hass()
|
||||
|
||||
state.start.assert_called_with()
|
||||
player.hass.helpers.dispatcher.async_dispatcher_connect.assert_any_call(
|
||||
SIGNAL_CLIENT_DATA, ANY
|
||||
)
|
||||
player.hass.helpers.dispatcher.async_dispatcher_connect.assert_any_call(
|
||||
SIGNAL_CLIENT_STARTED, ANY
|
||||
)
|
||||
player.hass.helpers.dispatcher.async_dispatcher_connect.assert_any_call(
|
||||
SIGNAL_CLIENT_STOPPED, ANY
|
||||
)
|
||||
connect.assert_any_call(player.hass, SIGNAL_CLIENT_DATA, ANY)
|
||||
connect.assert_any_call(player.hass, SIGNAL_CLIENT_STARTED, ANY)
|
||||
connect.assert_any_call(player.hass, SIGNAL_CLIENT_STOPPED, ANY)
|
||||
|
|
|
@ -2,6 +2,7 @@
|
|||
from unittest.mock import Mock, patch
|
||||
|
||||
from homeassistant.components.cloud.const import DISPATCHER_REMOTE_UPDATE
|
||||
from homeassistant.helpers.dispatcher import async_dispatcher_send
|
||||
from homeassistant.setup import async_setup_component
|
||||
|
||||
|
||||
|
@ -29,14 +30,14 @@ async def test_remote_connection_sensor(hass):
|
|||
with patch("homeassistant.components.cloud.binary_sensor.WAIT_UNTIL_CHANGE", 0):
|
||||
cloud.remote.is_connected = False
|
||||
cloud.remote.certificate = object()
|
||||
hass.helpers.dispatcher.async_dispatcher_send(DISPATCHER_REMOTE_UPDATE, {})
|
||||
async_dispatcher_send(hass, DISPATCHER_REMOTE_UPDATE, {})
|
||||
await hass.async_block_till_done()
|
||||
|
||||
state = hass.states.get("binary_sensor.remote_ui")
|
||||
assert state.state == "off"
|
||||
|
||||
cloud.remote.is_connected = True
|
||||
hass.helpers.dispatcher.async_dispatcher_send(DISPATCHER_REMOTE_UPDATE, {})
|
||||
async_dispatcher_send(hass, DISPATCHER_REMOTE_UPDATE, {})
|
||||
await hass.async_block_till_done()
|
||||
|
||||
state = hass.states.get("binary_sensor.remote_ui")
|
||||
|
|
Loading…
Reference in New Issue