mirror of
https://github.com/home-assistant/core.git
synced 2025-07-23 21:27:38 +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(
|
||||
hass, entry, player, lms.uuid
|
||||
)
|
||||
await player_coordinator.async_refresh()
|
||||
known_players.append(player.player_id)
|
||||
async_dispatcher_send(
|
||||
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.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
|
||||
|
||||
@ -100,6 +105,33 @@ async def test_entity_registry(
|
||||
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(
|
||||
hass: HomeAssistant, configured_player: MagicMock, freezer: FrozenDateTimeFactory
|
||||
) -> None:
|
||||
|
Loading…
x
Reference in New Issue
Block a user