Skip to content
Snippets Groups Projects
test_renderers.py 1.22 KiB
Newer Older
  • Learn to ignore specific revisions
  • from funkwhale_api.subsonic import renderers
    
    
    def test_json_renderer():
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        data = {"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
    
    
    def test_xml_renderer_dict_to_xml():
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        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>"""
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        result = renderers.dict_to_xml_tree("key", payload)
    
        exp = ET.fromstring(expected)
        assert ET.tostring(result) == ET.tostring(exp)
    
    
    def test_xml_renderer():
    
    Eliot Berriot's avatar
    Eliot Berriot committed
        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" />'  # noqa
    
    
        renderer = renderers.SubsonicXMLRenderer()
        rendered = renderer.render(payload)
    
        assert rendered == expected