From c2bfe56e6eeffcdefd57754405a00efc7daa267d Mon Sep 17 00:00:00 2001 From: Marnanel Thurman Date: Mon, 14 Sep 2020 01:30:13 +0100 Subject: [PATCH] test_person's check of the "followers" property now checks remote followers of local accounts, and vice versa. One passes, the other doesn't. --- kepi/trilby_api/tests/test_person.py | 58 ++++++++++++++++++++++++++-- 1 file changed, 55 insertions(+), 3 deletions(-) diff --git a/kepi/trilby_api/tests/test_person.py b/kepi/trilby_api/tests/test_person.py index db9dfc1..c97c2b0 100644 --- a/kepi/trilby_api/tests/test_person.py +++ b/kepi/trilby_api/tests/test_person.py @@ -5,31 +5,83 @@ # Licensed under the GNU Public License v2. from kepi.trilby_api.tests import * +from kepi.bowler_pub.tests import create_remote_person, mock_remote_object from unittest import skip from rest_framework.test import APIClient, force_authenticate import logging +import httpretty logger = logging.getLogger(name='kepi') +REMOTE_FOLLOWERS_COLLECTION = """{ +"@context":"https://www.w3.org/ns/activitystreams", +"id":"https://example.com/users/peter/followers", +"type":"OrderedCollection", +"totalItems":3, +"orderedItems": [ +"https://example.com/users/quentin", +"https://example.com/users/roger", +"https://testserver/users/alice", +"https://testserver/users/bob", +]}""" + # This needs expanding into a full unit test. class TestPerson(TrilbyTestCase): + @httpretty.activate def test_followers(self): alice = create_local_person(name='alice') bob = create_local_person(name='bob') carol = create_local_person(name='carol') + peter = create_remote_person( + url = "https://example.com/users/peter", + name = "peter", + auto_fetch = True, + ) + quentin = create_remote_person( + url = "https://example.com/users/quentin", + name = "quentin", + auto_fetch = True, + ) + roger = create_remote_person( + url = "https://example.com/users/roger", + name = "roger", + auto_fetch = True, + ) + Follow(follower=bob, following=alice).save() Follow(follower=carol, following=alice).save() + Follow(follower=peter, following=alice).save() followers = sorted(list( [x.url for x in alice.followers])) self.assertEqual( followers, - ['https://testserver/users/bob', 'https://testserver/users/carol'] - ) + [ + 'https://example.com/users/peter', + 'https://testserver/users/bob', + 'https://testserver/users/carol', + ], + ) - # FIXME test the "followers" property on a RemotePerson + mock_remote_object( + url="https://example.com/users/peter/followers", + content=REMOTE_FOLLOWERS_COLLECTION, + ) + + followers = sorted(list( + [x.url for x in peter.followers])) + + self.assertEqual( + followers, + [ + 'https://example.com/users/quentin', + 'https://example.com/users/roger', + 'https://testserver/users/alice', + 'https://testserver/users/bob', + ], + )