From ecc08fce0fc92ae1002a1d4ad971e84842e7f6f8 Mon Sep 17 00:00:00 2001 From: Markus Jacobsen Date: Wed, 3 Dec 2025 17:46:18 +0100 Subject: [PATCH] Reduce naming verbosity in Bang & Olufsen (#157825) --- .../components/bang_olufsen/__init__.py | 20 +- .../components/bang_olufsen/config_flow.py | 2 +- .../components/bang_olufsen/const.py | 40 ++-- .../components/bang_olufsen/diagnostics.py | 4 +- .../components/bang_olufsen/entity.py | 8 +- .../components/bang_olufsen/event.py | 39 ++-- .../components/bang_olufsen/media_player.py | 82 ++++---- homeassistant/components/bang_olufsen/util.py | 10 +- .../components/bang_olufsen/websocket.py | 14 +- tests/components/bang_olufsen/const.py | 4 +- .../snapshots/test_media_player.ambr | 198 +++++++++--------- .../bang_olufsen/test_media_player.py | 44 ++-- .../components/bang_olufsen/test_websocket.py | 8 +- 13 files changed, 231 insertions(+), 242 deletions(-) diff --git a/homeassistant/components/bang_olufsen/__init__.py b/homeassistant/components/bang_olufsen/__init__.py index 34042666ae4..92f29c071da 100644 --- a/homeassistant/components/bang_olufsen/__init__.py +++ b/homeassistant/components/bang_olufsen/__init__.py @@ -21,29 +21,29 @@ from homeassistant.helpers import device_registry as dr from homeassistant.util.ssl import get_default_context from .const import DOMAIN -from .websocket import BangOlufsenWebsocket +from .websocket import BeoWebsocket @dataclass -class BangOlufsenData: +class BeoData: """Dataclass for API client and WebSocket client.""" - websocket: BangOlufsenWebsocket + websocket: BeoWebsocket client: MozartClient -type BangOlufsenConfigEntry = ConfigEntry[BangOlufsenData] +type BeoConfigEntry = ConfigEntry[BeoData] PLATFORMS = [Platform.EVENT, Platform.MEDIA_PLAYER] -async def async_setup_entry(hass: HomeAssistant, entry: BangOlufsenConfigEntry) -> bool: +async def async_setup_entry(hass: HomeAssistant, entry: BeoConfigEntry) -> bool: """Set up from a config entry.""" # Remove casts to str assert entry.unique_id - # Create device now as BangOlufsenWebsocket needs a device for debug logging, firing events etc. + # Create device now as BeoWebsocket needs a device for debug logging, firing events etc. device_registry = dr.async_get(hass) device_registry.async_get_or_create( config_entry_id=entry.entry_id, @@ -68,10 +68,10 @@ async def async_setup_entry(hass: HomeAssistant, entry: BangOlufsenConfigEntry) await client.close_api_client() raise ConfigEntryNotReady(f"Unable to connect to {entry.title}") from error - websocket = BangOlufsenWebsocket(hass, entry, client) + websocket = BeoWebsocket(hass, entry, client) # Add the websocket and API client - entry.runtime_data = BangOlufsenData(websocket, client) + entry.runtime_data = BeoData(websocket, client) await hass.config_entries.async_forward_entry_setups(entry, PLATFORMS) @@ -82,9 +82,7 @@ async def async_setup_entry(hass: HomeAssistant, entry: BangOlufsenConfigEntry) return True -async def async_unload_entry( - hass: HomeAssistant, entry: BangOlufsenConfigEntry -) -> bool: +async def async_unload_entry(hass: HomeAssistant, entry: BeoConfigEntry) -> bool: """Unload a config entry.""" # Close the API client and WebSocket notification listener entry.runtime_data.client.disconnect_notifications() diff --git a/homeassistant/components/bang_olufsen/config_flow.py b/homeassistant/components/bang_olufsen/config_flow.py index b3beba14401..422c2a5bde4 100644 --- a/homeassistant/components/bang_olufsen/config_flow.py +++ b/homeassistant/components/bang_olufsen/config_flow.py @@ -47,7 +47,7 @@ _exception_map = { } -class BangOlufsenConfigFlowHandler(ConfigFlow, domain=DOMAIN): +class BeoConfigFlowHandler(ConfigFlow, domain=DOMAIN): """Handle a config flow.""" _beolink_jid = "" diff --git a/homeassistant/components/bang_olufsen/const.py b/homeassistant/components/bang_olufsen/const.py index 2dd168ff8a1..2ae03896082 100644 --- a/homeassistant/components/bang_olufsen/const.py +++ b/homeassistant/components/bang_olufsen/const.py @@ -14,7 +14,7 @@ from homeassistant.components.media_player import ( ) -class BangOlufsenSource: +class BeoSource: """Class used for associating device source ids with friendly names. May not include all sources.""" DEEZER: Final[Source] = Source(name="Deezer", id="deezer") @@ -26,7 +26,7 @@ class BangOlufsenSource: URI_STREAMER: Final[Source] = Source(name="Audio Streamer", id="uriStreamer") -BANG_OLUFSEN_STATES: dict[str, MediaPlayerState] = { +BEO_STATES: dict[str, MediaPlayerState] = { # Dict used for translating device states to Home Assistant states. "started": MediaPlayerState.PLAYING, "buffering": MediaPlayerState.PLAYING, @@ -40,19 +40,19 @@ BANG_OLUFSEN_STATES: dict[str, MediaPlayerState] = { } # Dict used for translating Home Assistant settings to device repeat settings. -BANG_OLUFSEN_REPEAT_FROM_HA: dict[RepeatMode, str] = { +BEO_REPEAT_FROM_HA: dict[RepeatMode, str] = { RepeatMode.ALL: "all", RepeatMode.ONE: "track", RepeatMode.OFF: "none", } # Dict used for translating device repeat settings to Home Assistant settings. -BANG_OLUFSEN_REPEAT_TO_HA: dict[str, RepeatMode] = { - value: key for key, value in BANG_OLUFSEN_REPEAT_FROM_HA.items() +BEO_REPEAT_TO_HA: dict[str, RepeatMode] = { + value: key for key, value in BEO_REPEAT_FROM_HA.items() } # Media types for play_media -class BangOlufsenMediaType(StrEnum): +class BeoMediaType(StrEnum): """Bang & Olufsen specific media types.""" FAVOURITE = "favourite" @@ -63,7 +63,7 @@ class BangOlufsenMediaType(StrEnum): OVERLAY_TTS = "overlay_tts" -class BangOlufsenModel(StrEnum): +class BeoModel(StrEnum): """Enum for compatible model names.""" # Mozart devices @@ -82,7 +82,7 @@ class BangOlufsenModel(StrEnum): BEOREMOTE_ONE = "Beoremote One" -class BangOlufsenAttribute(StrEnum): +class BeoAttribute(StrEnum): """Enum for extra_state_attribute keys.""" BEOLINK = "beolink" @@ -93,7 +93,7 @@ class BangOlufsenAttribute(StrEnum): # Physical "buttons" on devices -class BangOlufsenButtons(StrEnum): +class BeoButtons(StrEnum): """Enum for device buttons.""" BLUETOOTH = "Bluetooth" @@ -140,7 +140,7 @@ class WebsocketNotification(StrEnum): DOMAIN: Final[str] = "bang_olufsen" # Default values for configuration. -DEFAULT_MODEL: Final[str] = BangOlufsenModel.BEOSOUND_BALANCE +DEFAULT_MODEL: Final[str] = BeoModel.BEOSOUND_BALANCE # Configuration. CONF_SERIAL_NUMBER: Final = "serial_number" @@ -148,7 +148,7 @@ CONF_BEOLINK_JID: Final = "jid" # Models to choose from in manual configuration. SELECTABLE_MODELS: list[str] = [ - model.value for model in BangOlufsenModel if model != BangOlufsenModel.BEOREMOTE_ONE + model.value for model in BeoModel if model != BeoModel.BEOREMOTE_ONE ] MANUFACTURER: Final[str] = "Bang & Olufsen" @@ -160,15 +160,15 @@ ATTR_ITEM_NUMBER: Final[str] = "in" ATTR_FRIENDLY_NAME: Final[str] = "fn" # Power states. -BANG_OLUFSEN_ON: Final[str] = "on" +BEO_ON: Final[str] = "on" VALID_MEDIA_TYPES: Final[tuple] = ( - BangOlufsenMediaType.FAVOURITE, - BangOlufsenMediaType.DEEZER, - BangOlufsenMediaType.RADIO, - BangOlufsenMediaType.TTS, - BangOlufsenMediaType.TIDAL, - BangOlufsenMediaType.OVERLAY_TTS, + BeoMediaType.FAVOURITE, + BeoMediaType.DEEZER, + BeoMediaType.RADIO, + BeoMediaType.TTS, + BeoMediaType.TIDAL, + BeoMediaType.OVERLAY_TTS, MediaType.MUSIC, MediaType.URL, MediaType.CHANNEL, @@ -246,7 +246,7 @@ FALLBACK_SOURCES: Final[SourceArray] = SourceArray( ) # Device events -BANG_OLUFSEN_WEBSOCKET_EVENT: Final[str] = f"{DOMAIN}_websocket_event" +BEO_WEBSOCKET_EVENT: Final[str] = f"{DOMAIN}_websocket_event" # Dict used to translate native Bang & Olufsen event names to string.json compatible ones EVENT_TRANSLATION_MAP: dict[str, str] = { @@ -263,7 +263,7 @@ EVENT_TRANSLATION_MAP: dict[str, str] = { CONNECTION_STATUS: Final[str] = "CONNECTION_STATUS" -DEVICE_BUTTONS: Final[list[str]] = [x.value for x in BangOlufsenButtons] +DEVICE_BUTTONS: Final[list[str]] = [x.value for x in BeoButtons] DEVICE_BUTTON_EVENTS: Final[list[str]] = [ diff --git a/homeassistant/components/bang_olufsen/diagnostics.py b/homeassistant/components/bang_olufsen/diagnostics.py index 6078278061a..9e01bca7da8 100644 --- a/homeassistant/components/bang_olufsen/diagnostics.py +++ b/homeassistant/components/bang_olufsen/diagnostics.py @@ -10,13 +10,13 @@ from homeassistant.const import CONF_MODEL from homeassistant.core import HomeAssistant from homeassistant.helpers import entity_registry as er -from . import BangOlufsenConfigEntry +from . import BeoConfigEntry from .const import DOMAIN from .util import get_device_buttons async def async_get_config_entry_diagnostics( - hass: HomeAssistant, config_entry: BangOlufsenConfigEntry + hass: HomeAssistant, config_entry: BeoConfigEntry ) -> dict[str, Any]: """Return diagnostics for a config entry.""" diff --git a/homeassistant/components/bang_olufsen/entity.py b/homeassistant/components/bang_olufsen/entity.py index 8ed68da1678..bd24018221c 100644 --- a/homeassistant/components/bang_olufsen/entity.py +++ b/homeassistant/components/bang_olufsen/entity.py @@ -24,8 +24,8 @@ from homeassistant.helpers.entity import Entity from .const import DOMAIN -class BangOlufsenBase: - """Base class for BangOlufsen Home Assistant objects.""" +class BeoBase: + """Base class for Bang & Olufsen Home Assistant objects.""" def __init__(self, entry: ConfigEntry, client: MozartClient) -> None: """Initialize the object.""" @@ -51,8 +51,8 @@ class BangOlufsenBase: ) -class BangOlufsenEntity(Entity, BangOlufsenBase): - """Base Entity for BangOlufsen entities.""" +class BeoEntity(Entity, BeoBase): + """Base Entity for Bang & Olufsen entities.""" _attr_has_entity_name = True _attr_should_poll = False diff --git a/homeassistant/components/bang_olufsen/event.py b/homeassistant/components/bang_olufsen/event.py index a1d80914908..f7b3efdd12e 100644 --- a/homeassistant/components/bang_olufsen/event.py +++ b/homeassistant/components/bang_olufsen/event.py @@ -14,7 +14,7 @@ from homeassistant.helpers.device_registry import DeviceInfo from homeassistant.helpers.dispatcher import async_dispatcher_connect from homeassistant.helpers.entity_platform import AddConfigEntryEntitiesCallback -from . import BangOlufsenConfigEntry +from . import BeoConfigEntry from .const import ( BEO_REMOTE_CONTROL_KEYS, BEO_REMOTE_KEY_EVENTS, @@ -25,10 +25,10 @@ from .const import ( DEVICE_BUTTON_EVENTS, DOMAIN, MANUFACTURER, - BangOlufsenModel, + BeoModel, WebsocketNotification, ) -from .entity import BangOlufsenEntity +from .entity import BeoEntity from .util import get_device_buttons, get_remotes PARALLEL_UPDATES = 0 @@ -36,14 +36,14 @@ PARALLEL_UPDATES = 0 async def async_setup_entry( hass: HomeAssistant, - config_entry: BangOlufsenConfigEntry, + config_entry: BeoConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up Event entities from config entry.""" - entities: list[BangOlufsenEvent] = [] + entities: list[BeoEvent] = [] async_add_entities( - BangOlufsenButtonEvent(config_entry, button_type) + BeoButtonEvent(config_entry, button_type) for button_type in get_device_buttons(config_entry.data[CONF_MODEL]) ) @@ -54,7 +54,7 @@ async def async_setup_entry( # Add Light keys entities.extend( [ - BangOlufsenRemoteKeyEvent( + BeoRemoteKeyEvent( config_entry, remote, f"{BEO_REMOTE_SUBMENU_LIGHT}/{key_type}", @@ -66,7 +66,7 @@ async def async_setup_entry( # Add Control keys entities.extend( [ - BangOlufsenRemoteKeyEvent( + BeoRemoteKeyEvent( config_entry, remote, f"{BEO_REMOTE_SUBMENU_CONTROL}/{key_type}", @@ -84,10 +84,9 @@ async def async_setup_entry( config_entry.entry_id ) for device in devices: - if ( - device.model == BangOlufsenModel.BEOREMOTE_ONE - and device.serial_number not in {remote.serial_number for remote in remotes} - ): + if device.model == BeoModel.BEOREMOTE_ONE and device.serial_number not in { + remote.serial_number for remote in remotes + }: device_registry.async_update_device( device.id, remove_config_entry_id=config_entry.entry_id ) @@ -95,13 +94,13 @@ async def async_setup_entry( async_add_entities(new_entities=entities) -class BangOlufsenEvent(BangOlufsenEntity, EventEntity): +class BeoEvent(BeoEntity, EventEntity): """Base Event class.""" _attr_device_class = EventDeviceClass.BUTTON _attr_entity_registry_enabled_default = False - def __init__(self, config_entry: BangOlufsenConfigEntry) -> None: + def __init__(self, config_entry: BeoConfigEntry) -> None: """Initialize Event.""" super().__init__(config_entry, config_entry.runtime_data.client) @@ -112,12 +111,12 @@ class BangOlufsenEvent(BangOlufsenEntity, EventEntity): self.async_write_ha_state() -class BangOlufsenButtonEvent(BangOlufsenEvent): +class BeoButtonEvent(BeoEvent): """Event class for Button events.""" _attr_event_types = DEVICE_BUTTON_EVENTS - def __init__(self, config_entry: BangOlufsenConfigEntry, button_type: str) -> None: + def __init__(self, config_entry: BeoConfigEntry, button_type: str) -> None: """Initialize Button.""" super().__init__(config_entry) @@ -146,14 +145,14 @@ class BangOlufsenButtonEvent(BangOlufsenEvent): ) -class BangOlufsenRemoteKeyEvent(BangOlufsenEvent): +class BeoRemoteKeyEvent(BeoEvent): """Event class for Beoremote One key events.""" _attr_event_types = BEO_REMOTE_KEY_EVENTS def __init__( self, - config_entry: BangOlufsenConfigEntry, + config_entry: BeoConfigEntry, remote: PairedRemote, key_type: str, ) -> None: @@ -166,8 +165,8 @@ class BangOlufsenRemoteKeyEvent(BangOlufsenEvent): self._attr_unique_id = f"{remote.serial_number}_{self._unique_id}_{key_type}" self._attr_device_info = DeviceInfo( identifiers={(DOMAIN, f"{remote.serial_number}_{self._unique_id}")}, - name=f"{BangOlufsenModel.BEOREMOTE_ONE}-{remote.serial_number}-{self._unique_id}", - model=BangOlufsenModel.BEOREMOTE_ONE, + name=f"{BeoModel.BEOREMOTE_ONE}-{remote.serial_number}-{self._unique_id}", + model=BeoModel.BEOREMOTE_ONE, serial_number=remote.serial_number, sw_version=remote.app_version, manufacturer=MANUFACTURER, diff --git a/homeassistant/components/bang_olufsen/media_player.py b/homeassistant/components/bang_olufsen/media_player.py index 618c0f1808d..400a00e199b 100644 --- a/homeassistant/components/bang_olufsen/media_player.py +++ b/homeassistant/components/bang_olufsen/media_player.py @@ -69,11 +69,11 @@ from homeassistant.helpers.entity_platform import ( ) from homeassistant.util.dt import utcnow -from . import BangOlufsenConfigEntry +from . import BeoConfigEntry from .const import ( - BANG_OLUFSEN_REPEAT_FROM_HA, - BANG_OLUFSEN_REPEAT_TO_HA, - BANG_OLUFSEN_STATES, + BEO_REPEAT_FROM_HA, + BEO_REPEAT_TO_HA, + BEO_STATES, BEOLINK_JOIN_SOURCES, BEOLINK_JOIN_SOURCES_TO_UPPER, CONF_BEOLINK_JID, @@ -82,12 +82,12 @@ from .const import ( FALLBACK_SOURCES, MANUFACTURER, VALID_MEDIA_TYPES, - BangOlufsenAttribute, - BangOlufsenMediaType, - BangOlufsenSource, + BeoAttribute, + BeoMediaType, + BeoSource, WebsocketNotification, ) -from .entity import BangOlufsenEntity +from .entity import BeoEntity from .util import get_serial_number_from_jid PARALLEL_UPDATES = 0 @@ -96,7 +96,7 @@ SCAN_INTERVAL = timedelta(seconds=30) _LOGGER = logging.getLogger(__name__) -BANG_OLUFSEN_FEATURES = ( +BEO_FEATURES = ( MediaPlayerEntityFeature.BROWSE_MEDIA | MediaPlayerEntityFeature.CLEAR_PLAYLIST | MediaPlayerEntityFeature.GROUPING @@ -119,15 +119,13 @@ BANG_OLUFSEN_FEATURES = ( async def async_setup_entry( hass: HomeAssistant, - config_entry: BangOlufsenConfigEntry, + config_entry: BeoConfigEntry, async_add_entities: AddConfigEntryEntitiesCallback, ) -> None: """Set up a Media Player entity from config entry.""" # Add MediaPlayer entity async_add_entities( - new_entities=[ - BangOlufsenMediaPlayer(config_entry, config_entry.runtime_data.client) - ], + new_entities=[BeoMediaPlayer(config_entry, config_entry.runtime_data.client)], update_before_add=True, ) @@ -187,7 +185,7 @@ async def async_setup_entry( ) -class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): +class BeoMediaPlayer(BeoEntity, MediaPlayerEntity): """Representation of a media player.""" _attr_name = None @@ -288,7 +286,7 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): queue_settings = await self._client.get_settings_queue(_request_timeout=5) if queue_settings.repeat is not None: - self._attr_repeat = BANG_OLUFSEN_REPEAT_TO_HA[queue_settings.repeat] + self._attr_repeat = BEO_REPEAT_TO_HA[queue_settings.repeat] if queue_settings.shuffle is not None: self._attr_shuffle = queue_settings.shuffle @@ -408,8 +406,8 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): # Check if source is line-in or optical and progress should be updated if self._source_change.id in ( - BangOlufsenSource.LINE_IN.id, - BangOlufsenSource.SPDIF.id, + BeoSource.LINE_IN.id, + BeoSource.SPDIF.id, ): self._playback_progress = PlaybackProgress(progress=0) @@ -450,10 +448,8 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): # Add Beolink self self._beolink_attributes = { - BangOlufsenAttribute.BEOLINK: { - BangOlufsenAttribute.BEOLINK_SELF: { - self.device_entry.name: self._beolink_jid - } + BeoAttribute.BEOLINK: { + BeoAttribute.BEOLINK_SELF: {self.device_entry.name: self._beolink_jid} } } @@ -461,12 +457,12 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): peers = await self._client.get_beolink_peers() if len(peers) > 0: - self._beolink_attributes[BangOlufsenAttribute.BEOLINK][ - BangOlufsenAttribute.BEOLINK_PEERS + self._beolink_attributes[BeoAttribute.BEOLINK][ + BeoAttribute.BEOLINK_PEERS ] = {} for peer in peers: - self._beolink_attributes[BangOlufsenAttribute.BEOLINK][ - BangOlufsenAttribute.BEOLINK_PEERS + self._beolink_attributes[BeoAttribute.BEOLINK][ + BeoAttribute.BEOLINK_PEERS ][peer.friendly_name] = peer.jid # Add Beolink listeners / leader @@ -488,8 +484,8 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): # Add self group_members.append(self.entity_id) - self._beolink_attributes[BangOlufsenAttribute.BEOLINK][ - BangOlufsenAttribute.BEOLINK_LEADER + self._beolink_attributes[BeoAttribute.BEOLINK][ + BeoAttribute.BEOLINK_LEADER ] = { self._remote_leader.friendly_name: self._remote_leader.jid, } @@ -527,8 +523,8 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): beolink_listener.jid ) break - self._beolink_attributes[BangOlufsenAttribute.BEOLINK][ - BangOlufsenAttribute.BEOLINK_LISTENERS + self._beolink_attributes[BeoAttribute.BEOLINK][ + BeoAttribute.BEOLINK_LISTENERS ] = beolink_listeners_attribute self._attr_group_members = group_members @@ -600,7 +596,7 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): @property def supported_features(self) -> MediaPlayerEntityFeature: """Flag media player features that are supported.""" - features = BANG_OLUFSEN_FEATURES + features = BEO_FEATURES # Add seeking if supported by the current source if self._source_change.is_seekable is True: @@ -611,7 +607,7 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): @property def state(self) -> MediaPlayerState: """Return the current state of the media player.""" - return BANG_OLUFSEN_STATES[self._state] + return BEO_STATES[self._state] @property def volume_level(self) -> float | None: @@ -631,10 +627,10 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): def media_content_type(self) -> MediaType | str | None: """Return the current media type.""" content_type = { - BangOlufsenSource.URI_STREAMER.id: MediaType.URL, - BangOlufsenSource.DEEZER.id: BangOlufsenMediaType.DEEZER, - BangOlufsenSource.TIDAL.id: BangOlufsenMediaType.TIDAL, - BangOlufsenSource.NET_RADIO.id: BangOlufsenMediaType.RADIO, + BeoSource.URI_STREAMER.id: MediaType.URL, + BeoSource.DEEZER.id: BeoMediaType.DEEZER, + BeoSource.TIDAL.id: BeoMediaType.TIDAL, + BeoSource.NET_RADIO.id: BeoMediaType.RADIO, } # Hard to determine content type. if self._source_change.id in content_type: @@ -765,9 +761,7 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): async def async_set_repeat(self, repeat: RepeatMode) -> None: """Set playback queues to repeat.""" await self._client.set_settings_queue( - play_queue_settings=PlayQueueSettings( - repeat=BANG_OLUFSEN_REPEAT_FROM_HA[repeat] - ) + play_queue_settings=PlayQueueSettings(repeat=BEO_REPEAT_FROM_HA[repeat]) ) async def async_set_shuffle(self, shuffle: bool) -> None: @@ -871,7 +865,7 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): self._volume.level.level + offset_volume, 100 ) - if media_type == BangOlufsenMediaType.OVERLAY_TTS: + if media_type == BeoMediaType.OVERLAY_TTS: # Bang & Olufsen cloud TTS overlay_play_request.text_to_speech = ( OverlayPlayRequestTextToSpeechTextToSpeech( @@ -888,14 +882,14 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): # The "provider" media_type may not be suitable for overlay all the time. # Use it for now. - elif media_type == BangOlufsenMediaType.TTS: + elif media_type == BeoMediaType.TTS: await self._client.post_overlay_play( overlay_play_request=OverlayPlayRequest( uri=Uri(location=media_id), ) ) - elif media_type == BangOlufsenMediaType.RADIO: + elif media_type == BeoMediaType.RADIO: await self._client.run_provided_scene( scene_properties=SceneProperties( action_list=[ @@ -907,13 +901,13 @@ class BangOlufsenMediaPlayer(BangOlufsenEntity, MediaPlayerEntity): ) ) - elif media_type == BangOlufsenMediaType.FAVOURITE: + elif media_type == BeoMediaType.FAVOURITE: await self._client.activate_preset(id=int(media_id)) - elif media_type in (BangOlufsenMediaType.DEEZER, BangOlufsenMediaType.TIDAL): + elif media_type in (BeoMediaType.DEEZER, BeoMediaType.TIDAL): try: # Play Deezer flow. - if media_id == "flow" and media_type == BangOlufsenMediaType.DEEZER: + if media_id == "flow" and media_type == BeoMediaType.DEEZER: deezer_id = None if "id" in kwargs[ATTR_MEDIA_EXTRA]: diff --git a/homeassistant/components/bang_olufsen/util.py b/homeassistant/components/bang_olufsen/util.py index 66834579bb4..b58d685d1a2 100644 --- a/homeassistant/components/bang_olufsen/util.py +++ b/homeassistant/components/bang_olufsen/util.py @@ -11,7 +11,7 @@ from homeassistant.core import HomeAssistant from homeassistant.helpers import device_registry as dr from homeassistant.helpers.device_registry import DeviceEntry -from .const import DEVICE_BUTTONS, DOMAIN, BangOlufsenButtons, BangOlufsenModel +from .const import DEVICE_BUTTONS, DOMAIN, BeoButtons, BeoModel def get_device(hass: HomeAssistant, unique_id: str) -> DeviceEntry: @@ -40,16 +40,16 @@ async def get_remotes(client: MozartClient) -> list[PairedRemote]: ] -def get_device_buttons(model: BangOlufsenModel) -> list[str]: +def get_device_buttons(model: BeoModel) -> list[str]: """Get supported buttons for a given model.""" buttons = DEVICE_BUTTONS.copy() # Beosound Premiere does not have a bluetooth button - if model == BangOlufsenModel.BEOSOUND_PREMIERE: - buttons.remove(BangOlufsenButtons.BLUETOOTH) + if model == BeoModel.BEOSOUND_PREMIERE: + buttons.remove(BeoButtons.BLUETOOTH) # Beoconnect Core does not have any buttons - elif model == BangOlufsenModel.BEOCONNECT_CORE: + elif model == BeoModel.BEOCONNECT_CORE: buttons = [] return buttons diff --git a/homeassistant/components/bang_olufsen/websocket.py b/homeassistant/components/bang_olufsen/websocket.py index 1073a6a14af..3b47fc631c6 100644 --- a/homeassistant/components/bang_olufsen/websocket.py +++ b/homeassistant/components/bang_olufsen/websocket.py @@ -27,20 +27,20 @@ from homeassistant.helpers.dispatcher import async_dispatcher_send from homeassistant.util.enum import try_parse_enum from .const import ( - BANG_OLUFSEN_WEBSOCKET_EVENT, + BEO_WEBSOCKET_EVENT, CONNECTION_STATUS, DOMAIN, EVENT_TRANSLATION_MAP, - BangOlufsenModel, + BeoModel, WebsocketNotification, ) -from .entity import BangOlufsenBase +from .entity import BeoBase from .util import get_device, get_remotes _LOGGER = logging.getLogger(__name__) -class BangOlufsenWebsocket(BangOlufsenBase): +class BeoWebsocket(BeoBase): """The WebSocket listeners.""" def __init__( @@ -48,7 +48,7 @@ class BangOlufsenWebsocket(BangOlufsenBase): ) -> None: """Initialize the WebSocket listeners.""" - BangOlufsenBase.__init__(self, entry, client) + BeoBase.__init__(self, entry, client) self.hass = hass self._device = get_device(hass, self._unique_id) @@ -178,7 +178,7 @@ class BangOlufsenWebsocket(BangOlufsenBase): self.entry.entry_id ) if device.serial_number is not None - and device.model == BangOlufsenModel.BEOREMOTE_ONE + and device.model == BeoModel.BEOREMOTE_ONE ] # Get paired remotes from device remote_serial_numbers = [ @@ -274,4 +274,4 @@ class BangOlufsenWebsocket(BangOlufsenBase): } _LOGGER.debug("%s", debug_notification) - self.hass.bus.async_fire(BANG_OLUFSEN_WEBSOCKET_EVENT, debug_notification) + self.hass.bus.async_fire(BEO_WEBSOCKET_EVENT, debug_notification) diff --git a/tests/components/bang_olufsen/const.py b/tests/components/bang_olufsen/const.py index 213c6720b15..78e197714da 100644 --- a/tests/components/bang_olufsen/const.py +++ b/tests/components/bang_olufsen/const.py @@ -29,7 +29,7 @@ from homeassistant.components.bang_olufsen.const import ( ATTR_SERIAL_NUMBER, ATTR_TYPE_NUMBER, CONF_BEOLINK_JID, - BangOlufsenSource, + BeoSource, ) from homeassistant.const import CONF_HOST, CONF_MODEL, CONF_NAME from homeassistant.helpers.service_info.zeroconf import ZeroconfServiceInfo @@ -148,7 +148,7 @@ TEST_DATA_ZEROCONF_IPV6 = ZeroconfServiceInfo( TEST_SOURCE = Source( name="Tidal", id="tidal", is_seekable=True, is_enabled=True, is_playable=True ) -TEST_AUDIO_SOURCES = [TEST_SOURCE.name, BangOlufsenSource.LINE_IN.name] +TEST_AUDIO_SOURCES = [TEST_SOURCE.name, BeoSource.LINE_IN.name] TEST_VIDEO_SOURCES = ["HDMI A"] TEST_SOURCES = TEST_AUDIO_SOURCES + TEST_VIDEO_SOURCES TEST_FALLBACK_SOURCES = [ diff --git a/tests/components/bang_olufsen/snapshots/test_media_player.ambr b/tests/components/bang_olufsen/snapshots/test_media_player.ambr index c7fea881345..4c9cf8e9db6 100644 --- a/tests/components/bang_olufsen/snapshots/test_media_player.ambr +++ b/tests/components/bang_olufsen/snapshots/test_media_player.ambr @@ -2,16 +2,16 @@ # name: test_async_beolink_allstandby StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -50,16 +50,16 @@ # name: test_async_beolink_expand[all_discovered-True-None-log_messages0-3] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -71,7 +71,7 @@ 'listener_not_in_hass-1111.1111111.33333333@products.bang-olufsen.com', 'listener_not_in_hass-1111.1111111.44444444@products.bang-olufsen.com', ]), - 'media_content_type': , + 'media_content_type': , 'repeat': , 'shuffle': False, 'sound_mode': 'Test Listening Mode (123)', @@ -99,16 +99,16 @@ # name: test_async_beolink_expand[all_discovered-True-expand_side_effect1-log_messages1-3] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -120,7 +120,7 @@ 'listener_not_in_hass-1111.1111111.33333333@products.bang-olufsen.com', 'listener_not_in_hass-1111.1111111.44444444@products.bang-olufsen.com', ]), - 'media_content_type': , + 'media_content_type': , 'repeat': , 'shuffle': False, 'sound_mode': 'Test Listening Mode (123)', @@ -148,16 +148,16 @@ # name: test_async_beolink_expand[beolink_jids-parameter_value2-None-log_messages2-2] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -169,7 +169,7 @@ 'listener_not_in_hass-1111.1111111.33333333@products.bang-olufsen.com', 'listener_not_in_hass-1111.1111111.44444444@products.bang-olufsen.com', ]), - 'media_content_type': , + 'media_content_type': , 'repeat': , 'shuffle': False, 'sound_mode': 'Test Listening Mode (123)', @@ -197,16 +197,16 @@ # name: test_async_beolink_expand[beolink_jids-parameter_value3-expand_side_effect3-log_messages3-2] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -218,7 +218,7 @@ 'listener_not_in_hass-1111.1111111.33333333@products.bang-olufsen.com', 'listener_not_in_hass-1111.1111111.44444444@products.bang-olufsen.com', ]), - 'media_content_type': , + 'media_content_type': , 'repeat': , 'shuffle': False, 'sound_mode': 'Test Listening Mode (123)', @@ -246,16 +246,16 @@ # name: test_async_beolink_join[service_parameters0-method_parameters0] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -294,16 +294,16 @@ # name: test_async_beolink_join[service_parameters1-method_parameters1] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -342,16 +342,16 @@ # name: test_async_beolink_join[service_parameters2-method_parameters2] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -390,16 +390,16 @@ # name: test_async_beolink_join_invalid[service_parameters0-expected_result0] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -438,16 +438,16 @@ # name: test_async_beolink_join_invalid[service_parameters1-expected_result1] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -486,16 +486,16 @@ # name: test_async_beolink_join_invalid[service_parameters2-expected_result2] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -534,16 +534,16 @@ # name: test_async_beolink_unexpand StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -582,16 +582,16 @@ # name: test_async_join_players[group_members0-1-0] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -603,7 +603,7 @@ 'listener_not_in_hass-1111.1111111.33333333@products.bang-olufsen.com', 'listener_not_in_hass-1111.1111111.44444444@products.bang-olufsen.com', ]), - 'media_content_type': , + 'media_content_type': , 'repeat': , 'shuffle': False, 'sound_mode': 'Test Listening Mode (123)', @@ -631,16 +631,16 @@ # name: test_async_join_players[group_members0-1-0].1 StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.22222222@products.bang-olufsen.com', }), }), @@ -680,16 +680,16 @@ # name: test_async_join_players[group_members1-0-1] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -701,7 +701,7 @@ 'listener_not_in_hass-1111.1111111.33333333@products.bang-olufsen.com', 'listener_not_in_hass-1111.1111111.44444444@products.bang-olufsen.com', ]), - 'media_content_type': , + 'media_content_type': , 'repeat': , 'shuffle': False, 'sound_mode': 'Test Listening Mode (123)', @@ -729,16 +729,16 @@ # name: test_async_join_players[group_members1-0-1].1 StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.22222222@products.bang-olufsen.com', }), }), @@ -778,16 +778,16 @@ # name: test_async_join_players_invalid[source0-group_members0-expected_result0-invalid_source] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -828,16 +828,16 @@ # name: test_async_join_players_invalid[source0-group_members0-expected_result0-invalid_source].1 StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.22222222@products.bang-olufsen.com', }), }), @@ -877,16 +877,16 @@ # name: test_async_join_players_invalid[source1-group_members1-expected_result1-invalid_grouping_entity] StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -898,7 +898,7 @@ 'listener_not_in_hass-1111.1111111.33333333@products.bang-olufsen.com', 'listener_not_in_hass-1111.1111111.44444444@products.bang-olufsen.com', ]), - 'media_content_type': , + 'media_content_type': , 'repeat': , 'shuffle': False, 'sound_mode': 'Test Listening Mode (123)', @@ -926,16 +926,16 @@ # name: test_async_join_players_invalid[source1-group_members1-expected_result1-invalid_grouping_entity].1 StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.22222222@products.bang-olufsen.com', }), }), @@ -975,16 +975,16 @@ # name: test_async_unjoin_player StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -1023,15 +1023,15 @@ # name: test_async_update_beolink_listener StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Laundry room Core': '1111.1111111.22222222@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.11111111@products.bang-olufsen.com', }), }), @@ -1069,16 +1069,16 @@ # name: test_async_update_beolink_listener.1 StateSnapshot({ 'attributes': ReadOnlyDict({ - : dict({ - : dict({ + : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Bedroom Premiere': '1111.1111111.33333333@products.bang-olufsen.com', 'Lounge room Balance': '1111.1111111.44444444@products.bang-olufsen.com', }), - : dict({ + : dict({ 'Living room Balance': '1111.1111111.22222222@products.bang-olufsen.com', }), }), diff --git a/tests/components/bang_olufsen/test_media_player.py b/tests/components/bang_olufsen/test_media_player.py index e2a72f363f1..38593922e30 100644 --- a/tests/components/bang_olufsen/test_media_player.py +++ b/tests/components/bang_olufsen/test_media_player.py @@ -21,11 +21,11 @@ from syrupy.filters import props from voluptuous import Invalid, MultipleInvalid from homeassistant.components.bang_olufsen.const import ( - BANG_OLUFSEN_REPEAT_FROM_HA, - BANG_OLUFSEN_STATES, + BEO_REPEAT_FROM_HA, + BEO_STATES, DOMAIN, - BangOlufsenMediaType, - BangOlufsenSource, + BeoMediaType, + BeoSource, ) from homeassistant.components.media_player import ( ATTR_GROUP_MEMBERS, @@ -354,7 +354,7 @@ async def test_async_update_playback_state( [ # URI source, url media type expected ( - BangOlufsenSource.URI_STREAMER, + BeoSource.URI_STREAMER, MediaType.URL, TEST_PLAYBACK_PROGRESS.progress, PlaybackContentMetadata(), @@ -362,7 +362,7 @@ async def test_async_update_playback_state( ), # Line-In source, music media type expected, progress 0 expected ( - BangOlufsenSource.LINE_IN, + BeoSource.LINE_IN, MediaType.MUSIC, 0, PlaybackContentMetadata(), @@ -370,24 +370,24 @@ async def test_async_update_playback_state( ), # Tidal source, tidal media type expected, media content id expected ( - BangOlufsenSource.TIDAL, - BangOlufsenMediaType.TIDAL, + BeoSource.TIDAL, + BeoMediaType.TIDAL, TEST_PLAYBACK_PROGRESS.progress, PlaybackContentMetadata(source_internal_id="123"), True, ), # Deezer source, deezer media type expected, media content id expected ( - BangOlufsenSource.DEEZER, - BangOlufsenMediaType.DEEZER, + BeoSource.DEEZER, + BeoMediaType.DEEZER, TEST_PLAYBACK_PROGRESS.progress, PlaybackContentMetadata(source_internal_id="123"), True, ), # Radio source, radio media type expected, media content id expected ( - BangOlufsenSource.NET_RADIO, - BangOlufsenMediaType.RADIO, + BeoSource.NET_RADIO, + BeoMediaType.RADIO, TEST_PLAYBACK_PROGRESS.progress, PlaybackContentMetadata(source_internal_id="123"), True, @@ -454,7 +454,7 @@ async def test_async_turn_off( assert (states := hass.states.get(TEST_MEDIA_PLAYER_ENTITY_ID)) assert TEST_PLAYBACK_STATE_TURN_OFF.value - assert states.state == BANG_OLUFSEN_STATES[TEST_PLAYBACK_STATE_TURN_OFF.value] + assert states.state == BEO_STATES[TEST_PLAYBACK_STATE_TURN_OFF.value] # Check API call mock_mozart_client.post_standby.assert_called_once() @@ -513,7 +513,7 @@ async def test_async_update_beolink_line_in( beolink_callback = mock_mozart_client.get_notification_notifications.call_args[0][0] # Set source - source_change_callback(BangOlufsenSource.LINE_IN) + source_change_callback(BeoSource.LINE_IN) await beolink_callback(WebsocketNotificationTag(value="beolinkListeners")) assert (states := hass.states.get(TEST_MEDIA_PLAYER_ENTITY_ID)) @@ -669,7 +669,7 @@ async def test_async_media_play_pause( assert (states := hass.states.get(TEST_MEDIA_PLAYER_ENTITY_ID)) assert initial_state.value - assert states.state == BANG_OLUFSEN_STATES[initial_state.value] + assert states.state == BEO_STATES[initial_state.value] await hass.services.async_call( MEDIA_PLAYER_DOMAIN, @@ -696,7 +696,7 @@ async def test_async_media_stop( assert (states := hass.states.get(TEST_MEDIA_PLAYER_ENTITY_ID)) assert TEST_PLAYBACK_STATE_PLAYING.value - assert states.state == BANG_OLUFSEN_STATES[TEST_PLAYBACK_STATE_PLAYING.value] + assert states.state == BEO_STATES[TEST_PLAYBACK_STATE_PLAYING.value] await hass.services.async_call( MEDIA_PLAYER_DOMAIN, @@ -731,7 +731,7 @@ async def test_async_media_next_track( # Seekable source, seek expected (TEST_SOURCE, does_not_raise(), 1), # Non seekable source, seek shouldn't work - (BangOlufsenSource.LINE_IN, pytest.raises(HomeAssistantError), 0), + (BeoSource.LINE_IN, pytest.raises(HomeAssistantError), 0), # Malformed source, seek shouldn't work (Source(), pytest.raises(HomeAssistantError), 0), ], @@ -1331,7 +1331,7 @@ async def test_async_join_players( [ # Invalid source ( - BangOlufsenSource.LINE_IN, + BeoSource.LINE_IN, [TEST_MEDIA_PLAYER_ENTITY_ID_2], pytest.raises(ServiceValidationError), "invalid_source", @@ -1653,7 +1653,7 @@ async def test_async_set_repeat( # Set the return value of the repeat endpoint to match service call mock_mozart_client.get_settings_queue.return_value = PlayQueueSettings( - repeat=BANG_OLUFSEN_REPEAT_FROM_HA[repeat] + repeat=BEO_REPEAT_FROM_HA[repeat] ) await hass.services.async_call( @@ -1666,12 +1666,10 @@ async def test_async_set_repeat( blocking=True, ) mock_mozart_client.set_settings_queue.assert_called_once_with( - play_queue_settings=PlayQueueSettings( - repeat=BANG_OLUFSEN_REPEAT_FROM_HA[repeat] - ) + play_queue_settings=PlayQueueSettings(repeat=BEO_REPEAT_FROM_HA[repeat]) ) - # Test the BANG_OLUFSEN_REPEAT_TO_HA dict by checking property value + # Test the BEO_REPEAT_TO_HA dict by checking property value assert (states := hass.states.get(TEST_MEDIA_PLAYER_ENTITY_ID)) assert states.attributes[ATTR_MEDIA_REPEAT] == repeat diff --git a/tests/components/bang_olufsen/test_websocket.py b/tests/components/bang_olufsen/test_websocket.py index 2b1ae17e6ca..88d9d37614a 100644 --- a/tests/components/bang_olufsen/test_websocket.py +++ b/tests/components/bang_olufsen/test_websocket.py @@ -13,7 +13,7 @@ import pytest from syrupy.assertion import SnapshotAssertion from homeassistant.components.bang_olufsen.const import ( - BANG_OLUFSEN_WEBSOCKET_EVENT, + BEO_WEBSOCKET_EVENT, CONNECTION_STATUS, DOMAIN, WebsocketNotification, @@ -376,8 +376,8 @@ async def test_on_all_notifications_raw( mock_event_callback = Mock() - # Listen to BANG_OLUFSEN_WEBSOCKET_EVENT events - hass.bus.async_listen(BANG_OLUFSEN_WEBSOCKET_EVENT, mock_event_callback) + # Listen to BEO_WEBSOCKET_EVENT events + hass.bus.async_listen(BEO_WEBSOCKET_EVENT, mock_event_callback) # Trigger the notification all_notifications_raw_callback(raw_notification) @@ -386,5 +386,5 @@ async def test_on_all_notifications_raw( assert str(raw_notification_full) in caplog.text mocked_call = mock_event_callback.call_args[0][0].as_dict() - assert mocked_call["event_type"] == BANG_OLUFSEN_WEBSOCKET_EVENT + assert mocked_call["event_type"] == BEO_WEBSOCKET_EVENT assert mocked_call["data"] == raw_notification_full