funkwhale/api/tests/federation/test_activity.py

40 wiersze
1.3 KiB
Python

from funkwhale_api.federation import activity, serializers
def test_deliver(factories, r_mock, mocker, settings):
settings.CELERY_TASK_ALWAYS_EAGER = True
to = factories["federation.Actor"]()
mocker.patch("funkwhale_api.federation.actors.get_actor", return_value=to)
sender = factories["federation.Actor"]()
ac = {
"id": "http://test.federation/activity",
"type": "Create",
"actor": sender.url,
"object": {
"id": "http://test.federation/note",
"type": "Note",
"content": "Hello",
},
}
r_mock.post(to.inbox_url)
activity.deliver(ac, to=[to.url], on_behalf_of=sender)
request = r_mock.request_history[0]
assert r_mock.called is True
assert r_mock.call_count == 1
assert request.url == to.inbox_url
assert request.headers["content-type"] == "application/activity+json"
def test_accept_follow(mocker, factories):
deliver = mocker.patch("funkwhale_api.federation.activity.deliver")
follow = factories["federation.Follow"](approved=None)
expected_accept = serializers.AcceptFollowSerializer(follow).data
activity.accept_follow(follow)
deliver.assert_called_once_with(
expected_accept, to=[follow.actor.url], on_behalf_of=follow.target
)