Bump aiorussound to 4.1.0 (#130382)

This commit is contained in:
Noah Husby 2024-11-11 14:26:45 -05:00 committed by GitHub
parent 313309a7e0
commit e97a5f927c
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 29 additions and 31 deletions

View File

@ -17,7 +17,7 @@ RUSSOUND_RIO_EXCEPTIONS = (
)
CONNECT_TIMEOUT = 5
CONNECT_TIMEOUT = 15
MP_FEATURES_BY_FLAG = {
FeatureFlag.COMMANDS_ZONE_MUTE_OFF_ON: MediaPlayerEntityFeature.VOLUME_MUTE

View File

@ -7,5 +7,5 @@
"iot_class": "local_push",
"loggers": ["aiorussound"],
"quality_scale": "silver",
"requirements": ["aiorussound==4.0.5"]
"requirements": ["aiorussound==4.1.0"]
}

View File

@ -5,7 +5,7 @@ from __future__ import annotations
import logging
from aiorussound import Controller
from aiorussound.models import Source
from aiorussound.models import PlayStatus, Source
from aiorussound.rio import ZoneControlSurface
from homeassistant.components.media_player import (
@ -132,20 +132,18 @@ class RussoundZoneDevice(RussoundBaseEntity, MediaPlayerEntity):
def state(self) -> MediaPlayerState | None:
"""Return the state of the device."""
status = self._zone.status
mode = self._source.mode
if status == "ON":
if mode == "playing":
return MediaPlayerState.PLAYING
if mode == "paused":
return MediaPlayerState.PAUSED
if mode == "transitioning":
return MediaPlayerState.BUFFERING
if mode == "stopped":
return MediaPlayerState.IDLE
return MediaPlayerState.ON
if status == "OFF":
play_status = self._source.play_status
if not status:
return MediaPlayerState.OFF
return None
if play_status == PlayStatus.PLAYING:
return MediaPlayerState.PLAYING
if play_status == PlayStatus.PAUSED:
return MediaPlayerState.PAUSED
if play_status == PlayStatus.TRANSITIONING:
return MediaPlayerState.BUFFERING
if play_status == PlayStatus.STOPPED:
return MediaPlayerState.IDLE
return MediaPlayerState.ON
@property
def source(self):
@ -184,7 +182,7 @@ class RussoundZoneDevice(RussoundBaseEntity, MediaPlayerEntity):
Value is returned based on a range (0..50).
Therefore float divide by 50 to get to the required range.
"""
return float(self._zone.volume or "0") / 50.0
return self._zone.volume / 50.0
@command
async def async_turn_off(self) -> None:

View File

@ -357,7 +357,7 @@ aioridwell==2024.01.0
aioruckus==0.41
# homeassistant.components.russound_rio
aiorussound==4.0.5
aiorussound==4.1.0
# homeassistant.components.ruuvi_gateway
aioruuvigateway==0.1.0

View File

@ -339,7 +339,7 @@ aioridwell==2024.01.0
aioruckus==0.41
# homeassistant.components.russound_rio
aiorussound==4.0.5
aiorussound==4.1.0
# homeassistant.components.ruuvi_gateway
aioruuvigateway==0.1.0

View File

@ -2,7 +2,7 @@
from unittest.mock import AsyncMock
from aiorussound.models import CallbackType
from aiorussound.models import CallbackType, PlayStatus
import pytest
from homeassistant.const import (
@ -28,29 +28,29 @@ async def mock_state_update(client: AsyncMock) -> None:
@pytest.mark.parametrize(
("zone_status", "source_mode", "media_player_state"),
("zone_status", "source_play_status", "media_player_state"),
[
("ON", None, STATE_ON),
("ON", "playing", STATE_PLAYING),
("ON", "paused", STATE_PAUSED),
("ON", "transitioning", STATE_BUFFERING),
("ON", "stopped", STATE_IDLE),
("OFF", None, STATE_OFF),
("OFF", "stopped", STATE_OFF),
(True, None, STATE_ON),
(True, PlayStatus.PLAYING, STATE_PLAYING),
(True, PlayStatus.PAUSED, STATE_PAUSED),
(True, PlayStatus.TRANSITIONING, STATE_BUFFERING),
(True, PlayStatus.STOPPED, STATE_IDLE),
(False, None, STATE_OFF),
(False, PlayStatus.STOPPED, STATE_OFF),
],
)
async def test_entity_state(
hass: HomeAssistant,
mock_russound_client: AsyncMock,
mock_config_entry: MockConfigEntry,
zone_status: str,
source_mode: str | None,
zone_status: bool,
source_play_status: PlayStatus | None,
media_player_state: str,
) -> None:
"""Test media player state."""
await setup_integration(hass, mock_config_entry)
mock_russound_client.controllers[1].zones[1].status = zone_status
mock_russound_client.sources[1].mode = source_mode
mock_russound_client.sources[1].play_status = source_play_status
await mock_state_update(mock_russound_client)
await hass.async_block_till_done()