1
0
mirror of https://github.com/home-assistant/core.git synced 2026-02-15 07:36:16 +00:00

Use asyncio.gather pattern in portainer (#160888)

This commit is contained in:
Erwin Douna
2026-02-03 11:23:34 +01:00
committed by GitHub
parent ed3b4d2de3
commit 10d4af5674
2 changed files with 9 additions and 7 deletions

View File

@@ -143,9 +143,11 @@ class PortainerCoordinator(DataUpdateCoordinator[dict[int, PortainerCoordinatorD
continue
try:
containers = await self.portainer.get_containers(endpoint.id)
docker_version = await self.portainer.docker_version(endpoint.id)
docker_info = await self.portainer.docker_info(endpoint.id)
containers, docker_version, docker_info = await asyncio.gather(
self.portainer.get_containers(endpoint.id),
self.portainer.docker_version(endpoint.id),
self.portainer.docker_info(endpoint.id),
)
prev_endpoint = self.data.get(endpoint.id) if self.data else None
container_map: dict[str, PortainerContainerData] = {}

View File

@@ -58,8 +58,8 @@ async def test_refresh_endpoints_exceptions(
hass: HomeAssistant,
mock_portainer_client: AsyncMock,
mock_config_entry: MockConfigEntry,
freezer: FrozenDateTimeFactory,
exception: Exception,
freezer: FrozenDateTimeFactory,
) -> None:
"""Test entities go unavailable after coordinator refresh failures, for the endpoint fetch."""
await setup_integration(hass, mock_config_entry)
@@ -69,7 +69,7 @@ async def test_refresh_endpoints_exceptions(
freezer.tick(DEFAULT_SCAN_INTERVAL)
async_fire_time_changed(hass, dt_util.utcnow())
await hass.async_block_till_done()
await hass.async_block_till_done(wait_background_tasks=True)
state = hass.states.get("binary_sensor.practical_morse_status")
assert state.state == STATE_UNAVAILABLE
@@ -87,8 +87,8 @@ async def test_refresh_containers_exceptions(
hass: HomeAssistant,
mock_portainer_client: AsyncMock,
mock_config_entry: MockConfigEntry,
freezer: FrozenDateTimeFactory,
exception: Exception,
freezer: FrozenDateTimeFactory,
) -> None:
"""Test entities go unavailable after coordinator refresh failures, for the container fetch."""
await setup_integration(hass, mock_config_entry)
@@ -98,7 +98,7 @@ async def test_refresh_containers_exceptions(
freezer.tick(DEFAULT_SCAN_INTERVAL)
async_fire_time_changed(hass, dt_util.utcnow())
await hass.async_block_till_done()
await hass.async_block_till_done(wait_background_tasks=True)
state = hass.states.get("binary_sensor.practical_morse_status")
assert state.state == STATE_UNAVAILABLE