From d227490f5bfd753bbb26bf873cba7d523295b6db Mon Sep 17 00:00:00 2001 From: Philipp Wolfer Date: Wed, 3 Jan 2024 10:25:38 +0100 Subject: [PATCH] OpenSubsonic: report HTTP form POST extension as supported Funkwhale already supports passing parameters as application/x-www-form-urlencoded Part-of: --- api/funkwhale_api/subsonic/views.py | 3 +-- api/tests/subsonic/test_views.py | 17 +++++++++++++++++ 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/api/funkwhale_api/subsonic/views.py b/api/funkwhale_api/subsonic/views.py index 3140bb49e..8cfe23926 100644 --- a/api/funkwhale_api/subsonic/views.py +++ b/api/funkwhale_api/subsonic/views.py @@ -189,8 +189,7 @@ class SubsonicViewSet(viewsets.GenericViewSet): ) def get_open_subsonic_extensions(self, request, *args, **kwargs): data = { - # No specific extensions are currently supported - "openSubsonicExtensions": [""], + "openSubsonicExtensions": [{"name": "formPost", "versions": [1]}], } return response.Response(data, status=200) diff --git a/api/tests/subsonic/test_views.py b/api/tests/subsonic/test_views.py index 576c50005..854703c02 100644 --- a/api/tests/subsonic/test_views.py +++ b/api/tests/subsonic/test_views.py @@ -97,6 +97,23 @@ def test_ping(f, db, api_client): assert response.data == expected +@pytest.mark.parametrize("f", ["xml", "json"]) +def test_get_open_subsonic_extensions(f, db, api_client): + url = reverse("api:subsonic:subsonic-get_open_subsonic_extensions") + response = api_client.get(url, {"f": f}) + + expected = { + "openSubsonicExtensions": [ + { + "name": "formPost", + "versions": [1], + } + ], + } + assert response.status_code == 200 + assert response.data == expected + + @pytest.mark.parametrize("f", ["json"]) def test_get_artists( f, db, logged_in_api_client, factories, mocker, queryset_equal_queries