mirror of
https://code.eliotberriot.com/funkwhale/funkwhale.git
synced 2025-10-05 08:19:24 +02:00
Follow request approve/refuse logic
This commit is contained in:
parent
cb9309c298
commit
e0dcb87f15
4 changed files with 97 additions and 1 deletions
|
@ -1,8 +1,10 @@
|
|||
import pytest
|
||||
import uuid
|
||||
|
||||
from django import db
|
||||
|
||||
from funkwhale_api.federation import models
|
||||
from funkwhale_api.federation import serializers
|
||||
|
||||
|
||||
def test_cannot_duplicate_actor(factories):
|
||||
|
@ -30,3 +32,47 @@ def test_follow_federation_url(factories):
|
|||
follow.actor.url, follow.uuid)
|
||||
|
||||
assert follow.get_federation_url() == expected
|
||||
|
||||
|
||||
def test_follow_request_approve(mocker, factories):
|
||||
uid = uuid.uuid4()
|
||||
mocker.patch('uuid.uuid4', return_value=uid)
|
||||
accept_follow = mocker.patch(
|
||||
'funkwhale_api.federation.activity.accept_follow')
|
||||
fr = factories['federation.FollowRequest'](target__local=True)
|
||||
fr.approve()
|
||||
|
||||
follow = {
|
||||
'@context': serializers.AP_CONTEXT,
|
||||
'actor': fr.actor.url,
|
||||
'id': fr.actor.url + '#follows/{}'.format(uid),
|
||||
'object': fr.target.url,
|
||||
'type': 'Follow'
|
||||
}
|
||||
|
||||
assert fr.approved is True
|
||||
assert list(fr.target.followers.all()) == [fr.actor]
|
||||
accept_follow.assert_called_once_with(
|
||||
fr.target, follow, fr.actor
|
||||
)
|
||||
|
||||
|
||||
def test_follow_request_approve_non_local(mocker, factories):
|
||||
uid = uuid.uuid4()
|
||||
mocker.patch('uuid.uuid4', return_value=uid)
|
||||
accept_follow = mocker.patch(
|
||||
'funkwhale_api.federation.activity.accept_follow')
|
||||
fr = factories['federation.FollowRequest']()
|
||||
fr.approve()
|
||||
|
||||
assert fr.approved is True
|
||||
assert list(fr.target.followers.all()) == [fr.actor]
|
||||
accept_follow.assert_not_called()
|
||||
|
||||
|
||||
def test_follow_request_refused(mocker, factories):
|
||||
fr = factories['federation.FollowRequest']()
|
||||
fr.refuse()
|
||||
|
||||
assert fr.approved is False
|
||||
assert fr.target.followers.count() == 0
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue