mirror of
https://github.com/home-assistant/core.git
synced 2025-07-24 21:57:51 +00:00
Remove undo_listener
variable in AccuWeather integration (#52032)
This commit is contained in:
parent
01a26f1348
commit
2aed268fb7
@ -16,13 +16,7 @@ from homeassistant.core import HomeAssistant
|
|||||||
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
from homeassistant.helpers.aiohttp_client import async_get_clientsession
|
||||||
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
from homeassistant.helpers.update_coordinator import DataUpdateCoordinator, UpdateFailed
|
||||||
|
|
||||||
from .const import (
|
from .const import ATTR_FORECAST, CONF_FORECAST, DOMAIN
|
||||||
ATTR_FORECAST,
|
|
||||||
CONF_FORECAST,
|
|
||||||
COORDINATOR,
|
|
||||||
DOMAIN,
|
|
||||||
UNDO_UPDATE_LISTENER,
|
|
||||||
)
|
|
||||||
|
|
||||||
_LOGGER = logging.getLogger(__name__)
|
_LOGGER = logging.getLogger(__name__)
|
||||||
|
|
||||||
@ -45,12 +39,9 @@ async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
)
|
)
|
||||||
await coordinator.async_config_entry_first_refresh()
|
await coordinator.async_config_entry_first_refresh()
|
||||||
|
|
||||||
undo_listener = entry.add_update_listener(update_listener)
|
entry.async_on_unload(entry.add_update_listener(update_listener))
|
||||||
|
|
||||||
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = {
|
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator
|
||||||
COORDINATOR: coordinator,
|
|
||||||
UNDO_UPDATE_LISTENER: undo_listener,
|
|
||||||
}
|
|
||||||
|
|
||||||
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
|
hass.config_entries.async_setup_platforms(entry, PLATFORMS)
|
||||||
|
|
||||||
@ -61,8 +52,6 @@ async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool:
|
|||||||
"""Unload a config entry."""
|
"""Unload a config entry."""
|
||||||
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
unload_ok = await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
|
||||||
|
|
||||||
hass.data[DOMAIN][entry.entry_id][UNDO_UPDATE_LISTENER]()
|
|
||||||
|
|
||||||
if unload_ok:
|
if unload_ok:
|
||||||
hass.data[DOMAIN].pop(entry.entry_id)
|
hass.data[DOMAIN].pop(entry.entry_id)
|
||||||
|
|
||||||
|
@ -48,12 +48,10 @@ ATTR_LABEL: Final = "label"
|
|||||||
ATTR_UNIT_IMPERIAL: Final = "unit_imperial"
|
ATTR_UNIT_IMPERIAL: Final = "unit_imperial"
|
||||||
ATTR_UNIT_METRIC: Final = "unit_metric"
|
ATTR_UNIT_METRIC: Final = "unit_metric"
|
||||||
CONF_FORECAST: Final = "forecast"
|
CONF_FORECAST: Final = "forecast"
|
||||||
COORDINATOR: Final = "coordinator"
|
|
||||||
DOMAIN: Final = "accuweather"
|
DOMAIN: Final = "accuweather"
|
||||||
MANUFACTURER: Final = "AccuWeather, Inc."
|
MANUFACTURER: Final = "AccuWeather, Inc."
|
||||||
MAX_FORECAST_DAYS: Final = 4
|
MAX_FORECAST_DAYS: Final = 4
|
||||||
NAME: Final = "AccuWeather"
|
NAME: Final = "AccuWeather"
|
||||||
UNDO_UPDATE_LISTENER: Final = "undo_update_listener"
|
|
||||||
|
|
||||||
CONDITION_CLASSES: Final[dict[str, list[int]]] = {
|
CONDITION_CLASSES: Final[dict[str, list[int]]] = {
|
||||||
ATTR_CONDITION_CLEAR_NIGHT: [33, 34, 37],
|
ATTR_CONDITION_CLEAR_NIGHT: [33, 34, 37],
|
||||||
|
@ -28,7 +28,6 @@ from .const import (
|
|||||||
ATTR_UNIT_IMPERIAL,
|
ATTR_UNIT_IMPERIAL,
|
||||||
ATTR_UNIT_METRIC,
|
ATTR_UNIT_METRIC,
|
||||||
ATTRIBUTION,
|
ATTRIBUTION,
|
||||||
COORDINATOR,
|
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
FORECAST_SENSOR_TYPES,
|
FORECAST_SENSOR_TYPES,
|
||||||
MANUFACTURER,
|
MANUFACTURER,
|
||||||
@ -46,9 +45,7 @@ async def async_setup_entry(
|
|||||||
"""Add AccuWeather entities from a config_entry."""
|
"""Add AccuWeather entities from a config_entry."""
|
||||||
name: str = entry.data[CONF_NAME]
|
name: str = entry.data[CONF_NAME]
|
||||||
|
|
||||||
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id][
|
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
||||||
COORDINATOR
|
|
||||||
]
|
|
||||||
|
|
||||||
sensors: list[AccuWeatherSensor] = []
|
sensors: list[AccuWeatherSensor] = []
|
||||||
for sensor in SENSOR_TYPES:
|
for sensor in SENSOR_TYPES:
|
||||||
|
@ -8,7 +8,7 @@ from accuweather.const import ENDPOINT
|
|||||||
from homeassistant.components import system_health
|
from homeassistant.components import system_health
|
||||||
from homeassistant.core import HomeAssistant, callback
|
from homeassistant.core import HomeAssistant, callback
|
||||||
|
|
||||||
from .const import COORDINATOR, DOMAIN
|
from .const import DOMAIN
|
||||||
|
|
||||||
|
|
||||||
@callback
|
@callback
|
||||||
@ -21,8 +21,8 @@ def async_register(
|
|||||||
|
|
||||||
async def system_health_info(hass: HomeAssistant) -> dict[str, Any]:
|
async def system_health_info(hass: HomeAssistant) -> dict[str, Any]:
|
||||||
"""Get info for the info page."""
|
"""Get info for the info page."""
|
||||||
remaining_requests = list(hass.data[DOMAIN].values())[0][
|
remaining_requests = list(hass.data[DOMAIN].values())[
|
||||||
COORDINATOR
|
0
|
||||||
].accuweather.requests_remaining
|
].accuweather.requests_remaining
|
||||||
|
|
||||||
return {
|
return {
|
||||||
|
@ -31,7 +31,6 @@ from .const import (
|
|||||||
ATTR_FORECAST,
|
ATTR_FORECAST,
|
||||||
ATTRIBUTION,
|
ATTRIBUTION,
|
||||||
CONDITION_CLASSES,
|
CONDITION_CLASSES,
|
||||||
COORDINATOR,
|
|
||||||
DOMAIN,
|
DOMAIN,
|
||||||
MANUFACTURER,
|
MANUFACTURER,
|
||||||
NAME,
|
NAME,
|
||||||
@ -46,9 +45,7 @@ async def async_setup_entry(
|
|||||||
"""Add a AccuWeather weather entity from a config_entry."""
|
"""Add a AccuWeather weather entity from a config_entry."""
|
||||||
name: str = entry.data[CONF_NAME]
|
name: str = entry.data[CONF_NAME]
|
||||||
|
|
||||||
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id][
|
coordinator: AccuWeatherDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id]
|
||||||
COORDINATOR
|
|
||||||
]
|
|
||||||
|
|
||||||
async_add_entities([AccuWeatherEntity(name, coordinator)])
|
async_add_entities([AccuWeatherEntity(name, coordinator)])
|
||||||
|
|
||||||
|
@ -4,7 +4,7 @@ from unittest.mock import Mock
|
|||||||
|
|
||||||
from aiohttp import ClientError
|
from aiohttp import ClientError
|
||||||
|
|
||||||
from homeassistant.components.accuweather.const import COORDINATOR, DOMAIN
|
from homeassistant.components.accuweather.const import DOMAIN
|
||||||
from homeassistant.setup import async_setup_component
|
from homeassistant.setup import async_setup_component
|
||||||
|
|
||||||
from tests.common import get_system_health_info
|
from tests.common import get_system_health_info
|
||||||
@ -18,9 +18,7 @@ async def test_accuweather_system_health(hass, aioclient_mock):
|
|||||||
|
|
||||||
hass.data[DOMAIN] = {}
|
hass.data[DOMAIN] = {}
|
||||||
hass.data[DOMAIN]["0123xyz"] = {}
|
hass.data[DOMAIN]["0123xyz"] = {}
|
||||||
hass.data[DOMAIN]["0123xyz"][COORDINATOR] = Mock(
|
hass.data[DOMAIN]["0123xyz"] = Mock(accuweather=Mock(requests_remaining="42"))
|
||||||
accuweather=Mock(requests_remaining="42")
|
|
||||||
)
|
|
||||||
|
|
||||||
info = await get_system_health_info(hass, DOMAIN)
|
info = await get_system_health_info(hass, DOMAIN)
|
||||||
|
|
||||||
@ -42,9 +40,7 @@ async def test_accuweather_system_health_fail(hass, aioclient_mock):
|
|||||||
|
|
||||||
hass.data[DOMAIN] = {}
|
hass.data[DOMAIN] = {}
|
||||||
hass.data[DOMAIN]["0123xyz"] = {}
|
hass.data[DOMAIN]["0123xyz"] = {}
|
||||||
hass.data[DOMAIN]["0123xyz"][COORDINATOR] = Mock(
|
hass.data[DOMAIN]["0123xyz"] = Mock(accuweather=Mock(requests_remaining="0"))
|
||||||
accuweather=Mock(requests_remaining="0")
|
|
||||||
)
|
|
||||||
|
|
||||||
info = await get_system_health_info(hass, DOMAIN)
|
info = await get_system_health_info(hass, DOMAIN)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user