diff --git a/homeassistant/components/heos/media_player.py b/homeassistant/components/heos/media_player.py index 7e827c96f55..15d3c4573db 100644 --- a/homeassistant/components/heos/media_player.py +++ b/homeassistant/components/heos/media_player.py @@ -161,7 +161,7 @@ class HeosMediaPlayer(MediaPlayerEntity): @log_command_error("play media") async def async_play_media(self, media_type, media_id, **kwargs): """Play a piece of media.""" - if media_type == MEDIA_TYPE_URL: + if media_type in (MEDIA_TYPE_URL, MEDIA_TYPE_MUSIC): await self._player.play_url(media_id) return diff --git a/tests/components/heos/test_media_player.py b/tests/components/heos/test_media_player.py index 31aced7f807..835f34e5efc 100644 --- a/tests/components/heos/test_media_player.py +++ b/tests/components/heos/test_media_player.py @@ -614,6 +614,29 @@ async def test_play_media_url(hass, config_entry, config, controller, caplog): assert "Unable to play media: Failure (1)" in caplog.text +async def test_play_media_music(hass, config_entry, config, controller, caplog): + """Test the play media service with type music.""" + await setup_platform(hass, config_entry, config) + player = controller.players[1] + url = "http://news/podcast.mp3" + # First pass completes successfully, second pass raises command error + for _ in range(2): + await hass.services.async_call( + MEDIA_PLAYER_DOMAIN, + SERVICE_PLAY_MEDIA, + { + ATTR_ENTITY_ID: "media_player.test_player", + ATTR_MEDIA_CONTENT_TYPE: MEDIA_TYPE_MUSIC, + ATTR_MEDIA_CONTENT_ID: url, + }, + blocking=True, + ) + player.play_url.assert_called_once_with(url) + player.play_url.reset_mock() + player.play_url.side_effect = CommandFailedError(None, "Failure", 1) + assert "Unable to play media: Failure (1)" in caplog.text + + async def test_play_media_quick_select( hass, config_entry, config, controller, caplog, quick_selects ):