See #75: initial subsonic implementation that works with http://p.subfireplayer.net
This commit is contained in:
parent
9682299480
commit
bbd273404a
15 changed files with 774 additions and 48 deletions
44
api/tests/subsonic/test_renderers.py
Normal file
44
api/tests/subsonic/test_renderers.py
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
import json
|
||||
import xml.etree.ElementTree as ET
|
||||
|
||||
from funkwhale_api.subsonic import renderers
|
||||
|
||||
|
||||
def test_json_renderer():
|
||||
data = {'hello': 'world'}
|
||||
expected = {
|
||||
'subsonic-response': {
|
||||
'status': 'ok',
|
||||
'version': '1.16.0',
|
||||
'hello': 'world'
|
||||
}
|
||||
}
|
||||
renderer = renderers.SubsonicJSONRenderer()
|
||||
assert json.loads(renderer.render(data)) == expected
|
||||
|
||||
|
||||
def test_xml_renderer_dict_to_xml():
|
||||
payload = {
|
||||
'hello': 'world',
|
||||
'item': [
|
||||
{'this': 1},
|
||||
{'some': 'node'},
|
||||
]
|
||||
}
|
||||
expected = """<?xml version="1.0" encoding="UTF-8"?>
|
||||
<key hello="world"><item this="1" /><item some="node" /></key>"""
|
||||
result = renderers.dict_to_xml_tree('key', payload)
|
||||
exp = ET.fromstring(expected)
|
||||
assert ET.tostring(result) == ET.tostring(exp)
|
||||
|
||||
|
||||
def test_xml_renderer():
|
||||
payload = {
|
||||
'hello': 'world',
|
||||
}
|
||||
expected = b'<?xml version="1.0" encoding="UTF-8"?>\n<subsonic-response hello="world" status="ok" version="1.16.0" xmlns="http://subsonic.org/restapi" />'
|
||||
|
||||
renderer = renderers.SubsonicXMLRenderer()
|
||||
rendered = renderer.render(payload)
|
||||
|
||||
assert rendered == expected
|
||||
Loading…
Add table
Add a link
Reference in a new issue