Bump pyheos to v1.0.3 (#140310)

Bump pyheos v1.0.3
This commit is contained in:
Andrew Sayre 2025-03-11 03:18:31 -05:00 committed by GitHub
parent e0f4da390a
commit 6e2148193a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 11 additions and 44 deletions

View File

@ -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:

View File

@ -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"

2
requirements_all.txt generated
View File

@ -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

View File

@ -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

View File

@ -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',

View File

@ -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()

View File

@ -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(