kopia lustrzana https://github.com/snarfed/bridgy-fed
Protocol.receive: when fetching actor, fetch profile id
also update tests to test profile vs actor id with Fake users morepull/1731/head
rodzic
bf9957f889
commit
ca86534f21
|
|
@ -1042,7 +1042,8 @@ class Protocol:
|
|||
if (actor and actor.keys() == set(['id'])
|
||||
and obj.type not in ('delete', 'undo')):
|
||||
logger.debug('Fetching actor so we have name, profile photo, etc')
|
||||
actor_obj = from_cls.load(actor['id'], raise_=False)
|
||||
actor_obj = from_cls.load(ids.profile_id(id=actor['id'], proto=from_cls),
|
||||
raise_=False)
|
||||
if actor_obj and actor_obj.as1:
|
||||
obj.our_as1 = {
|
||||
**obj.as1, 'actor': {
|
||||
|
|
|
|||
|
|
@ -238,7 +238,7 @@ class PagesTest(TestCase):
|
|||
['Updating profile from <a href="web:fake:user">fake:handle:user</a>...'],
|
||||
get_flashed_messages())
|
||||
|
||||
self.assertEqual(['fake:profile:user', 'fake:user'], Fake.fetched)
|
||||
self.assertEqual(['fake:profile:user'], Fake.fetched)
|
||||
|
||||
actor['updated'] = '2022-01-02T03:04:05+00:00'
|
||||
self.assert_object('fake:profile:user', source_protocol='fake', our_as1=actor,
|
||||
|
|
@ -248,7 +248,7 @@ class PagesTest(TestCase):
|
|||
'objectType': 'activity',
|
||||
'verb': 'update',
|
||||
'id': 'fake:profile:user#bridgy-fed-update-2022-01-02T03:04:05+00:00',
|
||||
'actor': 'fake:user',
|
||||
'actor': {**actor, 'id': 'fake:user'},
|
||||
'object': actor,
|
||||
}
|
||||
self.assertEqual([('other:bob:target', update)], OtherFake.sent)
|
||||
|
|
|
|||
|
|
@ -1518,11 +1518,7 @@ class ProtocolReceiveTest(TestCase):
|
|||
'objectType': 'activity',
|
||||
'verb': 'post',
|
||||
'id': 'fake:post#bridgy-fed-create',
|
||||
'actor': {
|
||||
'objectType': 'person',
|
||||
'id': 'fake:user',
|
||||
'url': 'fake:user',
|
||||
},
|
||||
'actor': 'fake:user',
|
||||
'object': note_as1,
|
||||
'published': '2022-01-02T03:04:05+00:00',
|
||||
}
|
||||
|
|
@ -1635,7 +1631,7 @@ class ProtocolReceiveTest(TestCase):
|
|||
_, status = Fake.receive_as1(update)
|
||||
self.assertEqual(204, status)
|
||||
|
||||
self.assertEqual(['fake:post'], Fake.fetched)
|
||||
self.assertEqual(['fake:profile:user', 'fake:post'], Fake.fetched)
|
||||
self.assert_object('fake:post',
|
||||
our_as1=post,
|
||||
type='note',
|
||||
|
|
@ -1655,7 +1651,7 @@ class ProtocolReceiveTest(TestCase):
|
|||
with self.assertRaises(ErrorButDoNotRetryTask):
|
||||
Fake.receive_as1(update)
|
||||
|
||||
self.assertEqual(['fake:post'], Fake.fetched)
|
||||
self.assertEqual(['fake:profile:user', 'fake:post'], Fake.fetched)
|
||||
self.assertIsNone(Object.get_by_id('fake:update'))
|
||||
|
||||
def test_create_reply(self):
|
||||
|
|
@ -2157,19 +2153,20 @@ class ProtocolReceiveTest(TestCase):
|
|||
|
||||
self.make_followers()
|
||||
|
||||
actor = {
|
||||
'objectType': 'person',
|
||||
'id': 'fake:user',
|
||||
'displayName': 'Ms. ☕ Baz',
|
||||
'urls': [{'displayName': 'Ms. ☕ Baz', 'value': 'https://user.com/'}],
|
||||
'updated': '2022-01-02T03:04:05+00:00',
|
||||
}
|
||||
id = 'fake:user#update-2022-01-02T03:04:05+00:00'
|
||||
update_as1 = {
|
||||
'objectType': 'activity',
|
||||
'verb': 'update',
|
||||
'id': id,
|
||||
'actor': 'fake:user',
|
||||
'object': {
|
||||
'objectType': 'person',
|
||||
'id': 'fake:profile:user',
|
||||
'displayName': 'Ms. ☕ Baz',
|
||||
'urls': [{'displayName': 'Ms. ☕ Baz', 'value': 'https://user.com/'}],
|
||||
'updated': '2022-01-02T03:04:05+00:00',
|
||||
},
|
||||
'actor': actor,
|
||||
'object': {**actor, 'id': 'fake:profile:user'},
|
||||
}
|
||||
Fake.receive_as1(update_as1)
|
||||
|
||||
|
|
@ -2427,11 +2424,11 @@ class ProtocolReceiveTest(TestCase):
|
|||
self.assertEqual([('efake:follow:target', accept_as1)], ExplicitFake.sent)
|
||||
|
||||
def test_stop_following(self):
|
||||
follower = Follower.get_or_create(to=self.user, from_=self.alice)
|
||||
|
||||
self.user.obj.our_as1 = {'id': 'fake:user'}
|
||||
self.user.obj.put()
|
||||
|
||||
follower = Follower.get_or_create(to=self.user, from_=self.alice)
|
||||
|
||||
stop_as1 = {
|
||||
'id': 'other:stop-following',
|
||||
'objectType': 'activity',
|
||||
|
|
@ -2462,12 +2459,12 @@ class ProtocolReceiveTest(TestCase):
|
|||
self.assertEqual([('fake:user:target', stop_following_as1)], Fake.sent)
|
||||
|
||||
def test_stop_following_inactive(self):
|
||||
follower = Follower.get_or_create(to=self.user, from_=self.alice,
|
||||
status='inactive')
|
||||
OtherFake.fetchable['other:alice'] = {}
|
||||
self.user.obj.our_as1 = {'id': 'fake:user'}
|
||||
self.user.obj.put()
|
||||
|
||||
follower = Follower.get_or_create(to=self.user, from_=self.alice,
|
||||
status='inactive')
|
||||
|
||||
stop_following_as1 = {
|
||||
'id': 'other:stop-following',
|
||||
'objectType': 'activity',
|
||||
|
|
@ -2690,7 +2687,7 @@ class ProtocolReceiveTest(TestCase):
|
|||
self.assertEqual(('OK', 202), Fake.receive(obj, authed_as='fake:user'))
|
||||
self.assert_equals({
|
||||
**follow,
|
||||
'actor': {'id': 'fake:user'},
|
||||
'actor': 'fake:user',
|
||||
'object': 'other:alice',
|
||||
}, Object.get_by_id('fake:follow').our_as1)
|
||||
|
||||
|
|
|
|||
|
|
@ -42,6 +42,7 @@ import protocol
|
|||
import router
|
||||
|
||||
logger = logging.getLogger(__name__)
|
||||
logging.getLogger('memcache').setLevel(logging.INFO)
|
||||
|
||||
ATPROTO_KEY = arroba.util.new_key(2349823483510) # deterministic seed
|
||||
|
||||
|
|
|
|||
Ładowanie…
Reference in New Issue