From 0c6a640e505307be4f177c34a5428a4e3b6f1afe Mon Sep 17 00:00:00 2001 From: peteS-UK <64092177+peteS-UK@users.noreply.github.com> Date: Sun, 20 Oct 2024 15:00:55 +0100 Subject: [PATCH] Add New Music Category for Media Browser (#128147) --- homeassistant/components/squeezebox/browse_media.py | 13 ++++++++++++- tests/components/squeezebox/conftest.py | 1 + tests/components/squeezebox/test_media_browser.py | 9 ++++++++- 3 files changed, 21 insertions(+), 2 deletions(-) diff --git a/homeassistant/components/squeezebox/browse_media.py b/homeassistant/components/squeezebox/browse_media.py index 6c69aa532ec..4d1c98bc4fc 100644 --- a/homeassistant/components/squeezebox/browse_media.py +++ b/homeassistant/components/squeezebox/browse_media.py @@ -18,7 +18,15 @@ from homeassistant.components.media_player import ( from homeassistant.core import HomeAssistant from homeassistant.helpers.network import is_internal_request -LIBRARY = ["Favorites", "Artists", "Albums", "Tracks", "Playlists", "Genres"] +LIBRARY = [ + "Favorites", + "Artists", + "Albums", + "Tracks", + "Playlists", + "Genres", + "New Music", +] MEDIA_TYPE_TO_SQUEEZEBOX = { "Favorites": "favorites", @@ -27,6 +35,7 @@ MEDIA_TYPE_TO_SQUEEZEBOX = { "Tracks": "titles", "Playlists": "playlists", "Genres": "genres", + "New Music": "new music", MediaType.ALBUM: "album", MediaType.ARTIST: "artist", MediaType.TRACK: "title", @@ -50,6 +59,7 @@ CONTENT_TYPE_MEDIA_CLASS: dict[str | MediaType, dict[str, MediaClass | None]] = "Tracks": {"item": MediaClass.DIRECTORY, "children": MediaClass.TRACK}, "Playlists": {"item": MediaClass.DIRECTORY, "children": MediaClass.PLAYLIST}, "Genres": {"item": MediaClass.DIRECTORY, "children": MediaClass.GENRE}, + "New Music": {"item": MediaClass.DIRECTORY, "children": MediaClass.ALBUM}, MediaType.ALBUM: {"item": MediaClass.ALBUM, "children": MediaClass.TRACK}, MediaType.ARTIST: {"item": MediaClass.ARTIST, "children": MediaClass.ALBUM}, MediaType.TRACK: {"item": MediaClass.TRACK, "children": None}, @@ -68,6 +78,7 @@ CONTENT_TYPE_TO_CHILD_TYPE = { "Playlists": MediaType.PLAYLIST, "Genres": MediaType.GENRE, "Favorites": None, # can only be determined after inspecting the item + "New Music": MediaType.ALBUM, } BROWSE_LIMIT = 1000 diff --git a/tests/components/squeezebox/conftest.py b/tests/components/squeezebox/conftest.py index 2a8c4aacbd3..39b705a7de2 100644 --- a/tests/components/squeezebox/conftest.py +++ b/tests/components/squeezebox/conftest.py @@ -120,6 +120,7 @@ async def mock_async_browse( """Mock the async_browse method of pysqueezebox.Player.""" child_types = { "favorites": "favorites", + "new music": "album", "albums": "album", "album": "track", "genres": "genre", diff --git a/tests/components/squeezebox/test_media_browser.py b/tests/components/squeezebox/test_media_browser.py index c3398d24aa3..c03c1b6344d 100644 --- a/tests/components/squeezebox/test_media_browser.py +++ b/tests/components/squeezebox/test_media_browser.py @@ -72,7 +72,14 @@ async def test_async_browse_media_with_subitems( hass_ws_client: WebSocketGenerator, ) -> None: """Test each category with subitems.""" - for category in ("Favorites", "Artists", "Albums", "Playlists", "Genres"): + for category in ( + "Favorites", + "Artists", + "Albums", + "Playlists", + "Genres", + "New Music", + ): with patch( "homeassistant.components.squeezebox.browse_media.is_internal_request", return_value=False,