Fix #758: Ensure all our ActivityPub fetches are authenticated

This commit is contained in:
Eliot Berriot 2019-03-15 12:08:45 +01:00
parent 0cec13a78e
commit da3710ff08
10 changed files with 40 additions and 12 deletions

View file

@ -5,7 +5,10 @@ import pytest
from django.utils import timezone
from funkwhale_api.federation import models
from funkwhale_api.federation import serializers
from funkwhale_api.federation import tasks
from funkwhale_api.federation import utils
def test_clean_federation_music_cache_if_no_listen(preferences, factories):
@ -162,9 +165,11 @@ def test_fetch_nodeinfo(factories, r_mock, now):
assert tasks.fetch_nodeinfo("test.test") == {"hello": "world"}
def test_update_domain_nodeinfo(factories, mocker, now):
def test_update_domain_nodeinfo(factories, mocker, now, service_actor):
domain = factories["federation.Domain"](nodeinfo_fetch_date=None)
actor = factories["federation.Actor"](fid="https://actor.id")
retrieve_ap_object = mocker.spy(utils, "retrieve_ap_object")
mocker.patch.object(
tasks,
"fetch_nodeinfo",
@ -186,6 +191,13 @@ def test_update_domain_nodeinfo(factories, mocker, now):
}
assert domain.service_actor == actor
retrieve_ap_object.assert_called_once_with(
"https://actor.id",
actor=service_actor,
queryset=models.Actor,
serializer_class=serializers.ActorSerializer,
)
def test_update_domain_nodeinfo_error(factories, r_mock, now):
domain = factories["federation.Domain"](nodeinfo_fetch_date=None)