mirror of
https://github.com/home-assistant/core.git
synced 2025-07-26 22:57:17 +00:00
Add initial coordinator refresh for players in Squeezebox (#145347)
* initial * add test for new player
This commit is contained in:
parent
46fe132e83
commit
69a4d2107f
@ -152,6 +152,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: SqueezeboxConfigEntry) -
|
|||||||
player_coordinator = SqueezeBoxPlayerUpdateCoordinator(
|
player_coordinator = SqueezeBoxPlayerUpdateCoordinator(
|
||||||
hass, entry, player, lms.uuid
|
hass, entry, player, lms.uuid
|
||||||
)
|
)
|
||||||
|
await player_coordinator.async_refresh()
|
||||||
known_players.append(player.player_id)
|
known_players.append(player.player_id)
|
||||||
async_dispatcher_send(
|
async_dispatcher_send(
|
||||||
hass, SIGNAL_PLAYER_DISCOVERED, player_coordinator
|
hass, SIGNAL_PLAYER_DISCOVERED, player_coordinator
|
||||||
|
@ -72,7 +72,12 @@ from homeassistant.helpers.device_registry import DeviceRegistry
|
|||||||
from homeassistant.helpers.entity_registry import EntityRegistry
|
from homeassistant.helpers.entity_registry import EntityRegistry
|
||||||
from homeassistant.util.dt import utcnow
|
from homeassistant.util.dt import utcnow
|
||||||
|
|
||||||
from .conftest import FAKE_VALID_ITEM_ID, TEST_MAC, TEST_VOLUME_STEP
|
from .conftest import (
|
||||||
|
FAKE_VALID_ITEM_ID,
|
||||||
|
TEST_MAC,
|
||||||
|
TEST_VOLUME_STEP,
|
||||||
|
configure_squeezebox_media_player_platform,
|
||||||
|
)
|
||||||
|
|
||||||
from tests.common import MockConfigEntry, async_fire_time_changed, snapshot_platform
|
from tests.common import MockConfigEntry, async_fire_time_changed, snapshot_platform
|
||||||
|
|
||||||
@ -100,6 +105,33 @@ async def test_entity_registry(
|
|||||||
await snapshot_platform(hass, entity_registry, snapshot, config_entry.entry_id)
|
await snapshot_platform(hass, entity_registry, snapshot, config_entry.entry_id)
|
||||||
|
|
||||||
|
|
||||||
|
async def test_squeezebox_new_player_discovery(
|
||||||
|
hass: HomeAssistant,
|
||||||
|
config_entry: MockConfigEntry,
|
||||||
|
lms: MagicMock,
|
||||||
|
player_factory: MagicMock,
|
||||||
|
freezer: FrozenDateTimeFactory,
|
||||||
|
) -> None:
|
||||||
|
"""Test discovery of a new squeezebox player."""
|
||||||
|
# Initial setup with one player (from the 'lms' fixture)
|
||||||
|
await configure_squeezebox_media_player_platform(hass, config_entry, lms)
|
||||||
|
await hass.async_block_till_done(wait_background_tasks=True)
|
||||||
|
assert hass.states.get("media_player.test_player") is not None
|
||||||
|
assert hass.states.get("media_player.test_player_2") is None
|
||||||
|
|
||||||
|
# Simulate a new player appearing
|
||||||
|
new_player_mock = player_factory(TEST_MAC[1])
|
||||||
|
lms.async_get_players.return_value = [
|
||||||
|
lms.async_get_players.return_value[0],
|
||||||
|
new_player_mock,
|
||||||
|
]
|
||||||
|
|
||||||
|
freezer.tick(timedelta(seconds=DISCOVERY_INTERVAL))
|
||||||
|
async_fire_time_changed(hass)
|
||||||
|
await hass.async_block_till_done()
|
||||||
|
assert hass.states.get("media_player.test_player_2") is not None
|
||||||
|
|
||||||
|
|
||||||
async def test_squeezebox_player_rediscovery(
|
async def test_squeezebox_player_rediscovery(
|
||||||
hass: HomeAssistant, configured_player: MagicMock, freezer: FrozenDateTimeFactory
|
hass: HomeAssistant, configured_player: MagicMock, freezer: FrozenDateTimeFactory
|
||||||
) -> None:
|
) -> None:
|
||||||
|
Loading…
x
Reference in New Issue
Block a user