Skip to content
Snippets Groups Projects
Unverified Commit 6e214819 authored by Andrew Sayre's avatar Andrew Sayre Committed by GitHub
Browse files

Bump pyheos to v1.0.3 (#140310)

Bump pyheos v1.0.3
parent e0f4da39
No related branches found
No related tags found
No related merge requests found
......@@ -159,13 +159,12 @@ class HeosCoordinator(DataUpdateCoordinator[None]):
async def _async_on_reconnected(self) -> None:
"""Handle when reconnected so resources are updated and entities marked available."""
await self._async_update_players()
await self._async_update_sources()
_LOGGER.warning("Successfully reconnected to HEOS host %s", self.host)
self.async_update_listeners()
async def _async_on_controller_event(
self, event: str, data: PlayerUpdateResult | None
self, event: str, data: PlayerUpdateResult | None = None
) -> None:
"""Handle a controller event, such as players or groups changed."""
if event == const.EVENT_PLAYERS_CHANGED:
......
......@@ -8,7 +8,7 @@
"iot_class": "local_push",
"loggers": ["pyheos"],
"quality_scale": "platinum",
"requirements": ["pyheos==1.0.2"],
"requirements": ["pyheos==1.0.3"],
"ssdp": [
{
"st": "urn:schemas-denon-com:device:ACT-Denon:1"
......
......@@ -1996,7 +1996,7 @@ pygti==0.9.4
pyhaversion==22.8.0
# homeassistant.components.heos
pyheos==1.0.2
pyheos==1.0.3
# homeassistant.components.hive
pyhive-integration==1.0.2
......
......@@ -1625,7 +1625,7 @@ pygti==0.9.4
pyhaversion==22.8.0
# homeassistant.components.heos
pyheos==1.0.2
pyheos==1.0.3
# homeassistant.components.hive
pyhive-integration==1.0.2
......
......@@ -106,6 +106,7 @@
'model': 'HEOS Drive HS2',
'name': 'Test Player',
'network': 'wired',
'preferred_host': True,
'serial': '**REDACTED**',
'supported_version': True,
'version': '1.0.0',
......@@ -116,6 +117,7 @@
'model': 'HEOS Drive HS2',
'name': 'Test Player',
'network': 'wired',
'preferred_host': True,
'serial': '**REDACTED**',
'supported_version': True,
'version': '1.0.0',
......@@ -125,6 +127,7 @@
'model': 'Speaker',
'name': 'Test Player 2',
'network': 'wifi',
'preferred_host': False,
'serial': '**REDACTED**',
'supported_version': True,
'version': '1.0.0',
......@@ -137,6 +140,7 @@
'model': 'HEOS Drive HS2',
'name': 'Test Player',
'network': 'wired',
'preferred_host': True,
'serial': '**REDACTED**',
'supported_version': True,
'version': '1.0.0',
......
......@@ -285,11 +285,11 @@ async def test_reconnected_new_entities_created(
players = controller.players.copy()
players[3] = player_factory(3, "Test Player 3", "HEOS Link")
controller.mock_set_players(players)
controller.load_players.return_value = PlayerUpdateResult([3], [], {})
update = PlayerUpdateResult([3], [], {})
# Simulate reconnection
await controller.dispatcher.wait_send(
SignalType.HEOS_EVENT, SignalHeosEvent.CONNECTED
SignalType.CONTROLLER_EVENT, const.EVENT_PLAYERS_CHANGED, update
)
await hass.async_block_till_done()
......
......@@ -158,7 +158,6 @@ async def test_updates_from_connection_event(
state = hass.states.get("media_player.test_player")
assert state is not None
assert state.state == STATE_IDLE
assert controller.load_players.call_count == 1
# Disconnected
controller.load_players.reset_mock()
......@@ -170,11 +169,8 @@ async def test_updates_from_connection_event(
state = hass.states.get("media_player.test_player")
assert state is not None
assert state.state == STATE_UNAVAILABLE
assert controller.load_players.call_count == 0
# Connected handles refresh failure
controller.load_players.reset_mock()
controller.load_players.side_effect = CommandFailedError("", "Failure", 1)
# Reconnect and state updates
player.available = True
await controller.dispatcher.wait_send(
SignalType.HEOS_EVENT, SignalHeosEvent.CONNECTED
......@@ -183,38 +179,6 @@ async def test_updates_from_connection_event(
state = hass.states.get("media_player.test_player")
assert state is not None
assert state.state == STATE_IDLE
assert controller.load_players.call_count == 1
assert "Unable to refresh players" in caplog.text
async def test_updates_from_connection_event_new_player_ids(
hass: HomeAssistant,
entity_registry: er.EntityRegistry,
device_registry: dr.DeviceRegistry,
config_entry: MockConfigEntry,
controller: MockHeos,
change_data_mapped_ids: PlayerUpdateResult,
) -> None:
"""Test player ids changed after reconnection updates ids."""
config_entry.add_to_hass(hass)
assert await hass.config_entries.async_setup(config_entry.entry_id)
# Assert current IDs
assert device_registry.async_get_device(identifiers={(DOMAIN, "1")})
assert entity_registry.async_get_entity_id(MEDIA_PLAYER_DOMAIN, DOMAIN, "1")
# Send event which will result in updated IDs.
controller.load_players.return_value = change_data_mapped_ids
await controller.dispatcher.wait_send(
SignalType.HEOS_EVENT, SignalHeosEvent.CONNECTED
)
await hass.async_block_till_done()
# Assert updated IDs and previous don't exist
assert not device_registry.async_get_device(identifiers={(DOMAIN, "1")})
assert device_registry.async_get_device(identifiers={(DOMAIN, "101")})
assert not entity_registry.async_get_entity_id(MEDIA_PLAYER_DOMAIN, DOMAIN, "1")
assert entity_registry.async_get_entity_id(MEDIA_PLAYER_DOMAIN, DOMAIN, "101")
async def test_updates_from_sources_updated(
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment