From bf9957f88974850ccce640329e3be373b6f73576 Mon Sep 17 00:00:00 2001 From: Ryan Barrett Date: Mon, 27 Jan 2025 16:13:59 -0800 Subject: [PATCH] /update-profile bug fix for profile id vs actor id for #1720 --- protocol.py | 2 +- tests/test_pages.py | 22 ++++++++++++++++++---- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/protocol.py b/protocol.py index b5d07479..ed1dd9bd 100644 --- a/protocol.py +++ b/protocol.py @@ -1256,7 +1256,7 @@ class Protocol: if not is_actor and obj.type not in ('note', 'article', 'comment'): return obj - obj_actor = as1.get_owner(obj.as1) + obj_actor = ids.normalize_user_id(id=as1.get_owner(obj.as1), proto=cls) now = util.now().isoformat() # occasionally we override the object, eg if this is a profile object diff --git a/tests/test_pages.py b/tests/test_pages.py index 2d63d575..8813de62 100644 --- a/tests/test_pages.py +++ b/tests/test_pages.py @@ -219,6 +219,11 @@ class PagesTest(TestCase): def test_update_profile(self): user = self.make_user('fake:user', cls=Fake) + user.obj.copies = [Target(protocol='other', uri='other:profile:fake:user')] + user.obj.put() + + bob = self.make_user('other:bob', cls=OtherFake) + Follower.get_or_create(to=user, from_=bob) actor = { 'objectType': 'person', @@ -233,11 +238,20 @@ class PagesTest(TestCase): ['Updating profile from fake:handle:user...'], get_flashed_messages()) - self.assertEqual(['fake:profile:user'], Fake.fetched) + self.assertEqual(['fake:profile:user', 'fake:user'], Fake.fetched) actor['updated'] = '2022-01-02T03:04:05+00:00' self.assert_object('fake:profile:user', source_protocol='fake', our_as1=actor, - users=[user.key]) + users=[user.key], copies=user.obj.copies) + + update = { + 'objectType': 'activity', + 'verb': 'update', + 'id': 'fake:profile:user#bridgy-fed-update-2022-01-02T03:04:05+00:00', + 'actor': 'fake:user', + 'object': actor, + } + self.assertEqual([('other:bob:target', update)], OtherFake.sent) @patch.object(Fake, 'fetch', side_effect=ConnectionError('foo')) def test_update_profile_load_fails(self, _): @@ -303,7 +317,7 @@ class PagesTest(TestCase): 'objectType': 'activity', 'verb': 'update', 'id': 'https://user.com/#bridgy-fed-update-2022-01-02T03:04:05+00:00', - 'actor': actor_as1, + 'actor': {**actor_as1, 'id': 'user.com'}, 'object': actor_as1, })], Fake.sent) @@ -331,7 +345,7 @@ class PagesTest(TestCase): 'objectType': 'activity', 'verb': 'update', 'id': 'https://user.com/#bridgy-fed-update-2022-01-02T03:04:05+00:00', - 'actor': actor_as1, + 'actor': {**actor_as1, 'id': 'user.com'}, 'object': actor_as1, })], Fake.sent)