From de7713f3d576d713f185ed636419bad5448a4469 Mon Sep 17 00:00:00 2001 From: Eliot Berriot Date: Fri, 14 Feb 2020 14:23:45 +0100 Subject: [PATCH] See #170: include proper icon in channel actor representation --- api/funkwhale_api/federation/serializers.py | 4 ++-- api/tests/federation/test_serializers.py | 10 ++++++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/api/funkwhale_api/federation/serializers.py b/api/funkwhale_api/federation/serializers.py index 9b53c3298..351e1ac79 100644 --- a/api/funkwhale_api/federation/serializers.py +++ b/api/funkwhale_api/federation/serializers.py @@ -208,6 +208,7 @@ class ActorSerializer(jsonld.JsonLdSerializer): "mediaType": "application/rss+xml", }, ] + include_image(ret, channel.artist.attachment_cover, "icon") else: ret["url"] = [ { @@ -216,6 +217,7 @@ class ActorSerializer(jsonld.JsonLdSerializer): "mediaType": "text/html", } ] + include_image(ret, instance.attachment_icon, "icon") ret["@context"] = jsonld.get_default_context() if instance.public_key: @@ -226,8 +228,6 @@ class ActorSerializer(jsonld.JsonLdSerializer): } ret["endpoints"] = {} - include_image(ret, instance.attachment_icon, "icon") - if instance.shared_inbox_url: ret["endpoints"]["sharedInbox"] = instance.shared_inbox_url return ret diff --git a/api/tests/federation/test_serializers.py b/api/tests/federation/test_serializers.py index c6f7eb060..1d0ba37d9 100644 --- a/api/tests/federation/test_serializers.py +++ b/api/tests/federation/test_serializers.py @@ -1210,7 +1210,8 @@ def test_track_serializer_update_license(factories): def test_channel_actor_serializer(factories): - channel = factories["audio.Channel"]() + channel = factories["audio.Channel"](actor__attachment_icon=None) + serializer = serializers.ActorSerializer(channel.actor) expected_url = [ { @@ -1224,8 +1225,13 @@ def test_channel_actor_serializer(factories): "mediaType": "application/rss+xml", }, ] - + expected_icon = { + "type": "Image", + "mediaType": channel.artist.attachment_cover.mimetype, + "url": channel.artist.attachment_cover.download_url_original, + } assert serializer.data["url"] == expected_url + assert serializer.data["icon"] == expected_icon def test_channel_actor_outbox_serializer(factories):