From e852c8400757b8a3e38279c4fd4d49fee169d58a Mon Sep 17 00:00:00 2001
From: Eliot Berriot <contact@eliotberriot.com>
Date: Wed, 16 May 2018 21:45:03 +0200
Subject: [PATCH] Fix #197: .well-known/nodeinfo endpoint can now answer to
 request with Accept: application/json

---
 api/funkwhale_api/federation/views.py | 2 +-
 api/tests/federation/test_views.py    | 7 +++++--
 changes/changelog.d/197.bugfix        | 1 +
 3 files changed, 7 insertions(+), 3 deletions(-)
 create mode 100644 changes/changelog.d/197.bugfix

diff --git a/api/funkwhale_api/federation/views.py b/api/funkwhale_api/federation/views.py
index ef581408..37ad9ebf 100644
--- a/api/funkwhale_api/federation/views.py
+++ b/api/funkwhale_api/federation/views.py
@@ -88,7 +88,7 @@ class InstanceActorViewSet(FederationMixin, viewsets.GenericViewSet):
 class WellKnownViewSet(viewsets.GenericViewSet):
     authentication_classes = []
     permission_classes = []
-    renderer_classes = [renderers.WebfingerRenderer]
+    renderer_classes = [renderers.JSONRenderer, renderers.WebfingerRenderer]
 
     @list_route(methods=['get'])
     def nodeinfo(self, request, *args, **kwargs):
diff --git a/api/tests/federation/test_views.py b/api/tests/federation/test_views.py
index cc81f065..fd6ac2eb 100644
--- a/api/tests/federation/test_views.py
+++ b/api/tests/federation/test_views.py
@@ -62,7 +62,10 @@ def test_wellknown_webfinger_system(
     actor = actors.SYSTEM_ACTORS[system_actor].get_actor_instance()
     url = reverse('federation:well-known-webfinger')
     response = api_client.get(
-        url, data={'resource': 'acct:{}'.format(actor.webfinger_subject)})
+        url,
+        data={'resource': 'acct:{}'.format(actor.webfinger_subject)},
+        HTTP_ACCEPT='application/jrd+json',
+    )
     serializer = serializers.ActorWebfingerSerializer(actor)
 
     assert response.status_code == 200
@@ -83,7 +86,7 @@ def test_wellknown_nodeinfo(db, preferences, api_client, settings):
         ]
     }
     url = reverse('federation:well-known-nodeinfo')
-    response = api_client.get(url)
+    response = api_client.get(url, HTTP_ACCEPT='application/jrd+json')
     assert response.status_code == 200
     assert response['Content-Type'] == 'application/jrd+json'
     assert response.data == expected
diff --git a/changes/changelog.d/197.bugfix b/changes/changelog.d/197.bugfix
new file mode 100644
index 00000000..d40182f5
--- /dev/null
+++ b/changes/changelog.d/197.bugfix
@@ -0,0 +1 @@
+.well-known/nodeinfo endpoint can now answer to request with Accept: application/json (#197)
-- 
GitLab