kopia lustrzana https://dev.funkwhale.audio/funkwhale/funkwhale
Merge branch '573-subsonic-type' into 'develop'
Fix #573: Added "type: funkwhale" and "funkwhale-version" in Subsonic responses Closes #573 See merge request funkwhale/funkwhale!456merge-requests/466/head
commit
6c7ee54dbc
|
@ -2,13 +2,22 @@ import xml.etree.ElementTree as ET
|
|||
|
||||
from rest_framework import renderers
|
||||
|
||||
import funkwhale_api
|
||||
|
||||
|
||||
class SubsonicJSONRenderer(renderers.JSONRenderer):
|
||||
def render(self, data, accepted_media_type=None, renderer_context=None):
|
||||
if not data:
|
||||
# when stream view is called, we don't have any data
|
||||
return super().render(data, accepted_media_type, renderer_context)
|
||||
final = {"subsonic-response": {"status": "ok", "version": "1.16.0"}}
|
||||
final = {
|
||||
"subsonic-response": {
|
||||
"status": "ok",
|
||||
"version": "1.16.0",
|
||||
"type": "funkwhale",
|
||||
"funkwhale-version": funkwhale_api.__version__,
|
||||
}
|
||||
}
|
||||
final["subsonic-response"].update(data)
|
||||
if "error" in final:
|
||||
# an error was returned
|
||||
|
|
|
@ -1,13 +1,21 @@
|
|||
import json
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
import funkwhale_api
|
||||
|
||||
from funkwhale_api.subsonic import renderers
|
||||
|
||||
|
||||
def test_json_renderer():
|
||||
data = {"hello": "world"}
|
||||
expected = {
|
||||
"subsonic-response": {"status": "ok", "version": "1.16.0", "hello": "world"}
|
||||
"subsonic-response": {
|
||||
"status": "ok",
|
||||
"version": "1.16.0",
|
||||
"type": "funkwhale",
|
||||
"funkwhale-version": funkwhale_api.__version__,
|
||||
"hello": "world",
|
||||
}
|
||||
}
|
||||
renderer = renderers.SubsonicJSONRenderer()
|
||||
assert json.loads(renderer.render(data)) == expected
|
||||
|
|
|
@ -5,6 +5,8 @@ import pytest
|
|||
from django.urls import reverse
|
||||
from django.utils import timezone
|
||||
|
||||
import funkwhale_api
|
||||
|
||||
from funkwhale_api.music import models as music_models
|
||||
from funkwhale_api.music import views as music_views
|
||||
from funkwhale_api.subsonic import renderers, serializers
|
||||
|
@ -18,7 +20,12 @@ def test_render_content_json(db, api_client):
|
|||
url = reverse("api:subsonic-ping")
|
||||
response = api_client.get(url, {"f": "json"})
|
||||
|
||||
expected = {"status": "ok", "version": "1.16.0"}
|
||||
expected = {
|
||||
"status": "ok",
|
||||
"version": "1.16.0",
|
||||
"type": "funkwhale",
|
||||
"funkwhale-version": funkwhale_api.__version__,
|
||||
}
|
||||
assert response.status_code == 200
|
||||
assert json.loads(response.content) == render_json(expected)
|
||||
|
||||
|
|
|
@ -0,0 +1 @@
|
|||
Added "type: funkwhale" and "funkwhale-version" in Subsonic responses (#573)
|
Ładowanie…
Reference in New Issue