User.get_or_create: if propagate=True, always reload user profile remotely

pull/663/head
Ryan Barrett 2023-10-07 11:49:04 -07:00
rodzic f2c45f8c30
commit 37188f3cca
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
3 zmienionych plików z 17 dodań i 1 usunięć

Wyświetl plik

@ -240,6 +240,10 @@ class User(StringIdModel, metaclass=ProtocolUserMeta):
else:
user = cls(id=id, **kwargs)
if propagate:
# force refresh user profile
user.obj = cls.load(user.profile_id(), remote=True)
if propagate and cls.LABEL != 'atproto' and not user.atproto_did:
PROTOCOLS['atproto'].create_for(user)

Wyświetl plik

@ -385,7 +385,9 @@ class ATProtoTest(TestCase):
return_value=requests_response('OK')) # create DID on PLC
def test_send_new_repo_includes_user_profile(self, mock_post, mock_create_task,
_, __):
user = self.make_user(id='fake:user', cls=Fake, obj_as1=ACTOR_AS)
user = self.make_user(id='fake:user', cls=Fake)
Fake.fetchable = {'fake:user': ACTOR_AS}
obj = self.store_object(id='fake:post', source_protocol='fake', our_as1={
**POST_AS,
'actor': 'fake:user',

Wyświetl plik

@ -66,6 +66,9 @@ class UserTest(TestCase):
user = Fake.get_or_create('fake:user', propagate=True)
# check that profile was fetched remotely
self.assertEqual(['fake:user'], Fake.fetched)
# check user, repo
user = Fake.get_by_id('fake:user')
self.assertEqual('fake:handle:user', user.handle)
@ -87,6 +90,13 @@ class UserTest(TestCase):
mock_create_task.assert_called()
def test_get_or_create_propagate_reloads_existing_profile_object(self):
self.store_object(id='fake:user', our_as1={
'objectType': 'person',
'foo': 'bar',
})
self.test_get_or_create_propagate()
def test_validate_atproto_did(self):
user = Fake()