Migrate ambient_network to use runtime_data (#125535)

This commit is contained in:
epenet 2024-09-09 00:01:45 +02:00 committed by GitHub
parent 0f2525d476
commit 021878e942
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 15 additions and 14 deletions

View File

@ -8,28 +8,30 @@ from homeassistant.config_entries import ConfigEntry
from homeassistant.const import Platform from homeassistant.const import Platform
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from .const import DOMAIN
from .coordinator import AmbientNetworkDataUpdateCoordinator from .coordinator import AmbientNetworkDataUpdateCoordinator
type AmbientNetworkConfigEntry = ConfigEntry[AmbientNetworkDataUpdateCoordinator]
PLATFORMS: list[Platform] = [Platform.SENSOR] PLATFORMS: list[Platform] = [Platform.SENSOR]
async def async_setup_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_setup_entry(
hass: HomeAssistant, entry: AmbientNetworkConfigEntry
) -> bool:
"""Set up the Ambient Weather Network from a config entry.""" """Set up the Ambient Weather Network from a config entry."""
api = OpenAPI() api = OpenAPI()
coordinator = AmbientNetworkDataUpdateCoordinator(hass, api) coordinator = AmbientNetworkDataUpdateCoordinator(hass, api)
await coordinator.async_config_entry_first_refresh() await coordinator.async_config_entry_first_refresh()
hass.data.setdefault(DOMAIN, {})[entry.entry_id] = coordinator entry.runtime_data = coordinator
await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS)
return True return True
async def async_unload_entry(hass: HomeAssistant, entry: ConfigEntry) -> bool: async def async_unload_entry(
hass: HomeAssistant, entry: AmbientNetworkConfigEntry
) -> bool:
"""Unload a config entry.""" """Unload a config entry."""
if unload_ok := await hass.config_entries.async_unload_platforms(entry, PLATFORMS): return await hass.config_entries.async_unload_platforms(entry, PLATFORMS)
hass.data[DOMAIN].pop(entry.entry_id)
return unload_ok

View File

@ -10,7 +10,6 @@ from homeassistant.components.sensor import (
SensorEntityDescription, SensorEntityDescription,
SensorStateClass, SensorStateClass,
) )
from homeassistant.config_entries import ConfigEntry
from homeassistant.const import ( from homeassistant.const import (
CONCENTRATION_MICROGRAMS_PER_CUBIC_METER, CONCENTRATION_MICROGRAMS_PER_CUBIC_METER,
CONCENTRATION_PARTS_PER_MILLION, CONCENTRATION_PARTS_PER_MILLION,
@ -29,7 +28,7 @@ from homeassistant.core import HomeAssistant
from homeassistant.helpers.entity_platform import AddEntitiesCallback from homeassistant.helpers.entity_platform import AddEntitiesCallback
from homeassistant.util import dt as dt_util from homeassistant.util import dt as dt_util
from .const import DOMAIN from . import AmbientNetworkConfigEntry
from .coordinator import AmbientNetworkDataUpdateCoordinator from .coordinator import AmbientNetworkDataUpdateCoordinator
from .entity import AmbientNetworkEntity from .entity import AmbientNetworkEntity
@ -271,12 +270,12 @@ SENSOR_DESCRIPTIONS = (
async def async_setup_entry( async def async_setup_entry(
hass: HomeAssistant, hass: HomeAssistant,
entry: ConfigEntry, entry: AmbientNetworkConfigEntry,
async_add_entities: AddEntitiesCallback, async_add_entities: AddEntitiesCallback,
) -> None: ) -> None:
"""Set up the Ambient Network sensor entities.""" """Set up the Ambient Network sensor entities."""
coordinator: AmbientNetworkDataUpdateCoordinator = hass.data[DOMAIN][entry.entry_id] coordinator = entry.runtime_data
if coordinator.config_entry is not None: if coordinator.config_entry is not None:
async_add_entities( async_add_entities(
AmbientNetworkSensor( AmbientNetworkSensor(

View File

@ -7,7 +7,7 @@ from unittest.mock import AsyncMock, Mock, patch
from aioambient import OpenAPI from aioambient import OpenAPI
import pytest import pytest
from homeassistant.components import ambient_network from homeassistant.components.ambient_network.const import DOMAIN
from homeassistant.core import HomeAssistant from homeassistant.core import HomeAssistant
from tests.common import ( from tests.common import (
@ -69,7 +69,7 @@ async def mock_aioambient(open_api: OpenAPI):
def config_entry_fixture(request: pytest.FixtureRequest) -> MockConfigEntry: def config_entry_fixture(request: pytest.FixtureRequest) -> MockConfigEntry:
"""Mock config entry.""" """Mock config entry."""
return MockConfigEntry( return MockConfigEntry(
domain=ambient_network.DOMAIN, domain=DOMAIN,
title=f"Station {request.param[0]}", title=f"Station {request.param[0]}",
data={"mac": request.param}, data={"mac": request.param},
) )