kopia lustrzana https://github.com/snarfed/bridgy-fed
User.get_or_create: if propagate=True, always reload user profile remotely
rodzic
f2c45f8c30
commit
37188f3cca
|
@ -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)
|
||||
|
||||
|
|
|
@ -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',
|
||||
|
|
|
@ -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()
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue