kopia lustrzana https://github.com/snarfed/bridgy-fed
User.get_or_create: return None if opted out
rodzic
84eae588a8
commit
dd62f472da
|
@ -199,10 +199,15 @@ class User(StringIdModel, metaclass=ProtocolUserMeta):
|
|||
Args:
|
||||
propagate (bool): whether to create copies of this user in push-based
|
||||
protocols, eg ATProto and Nostr.
|
||||
|
||||
Returns:
|
||||
User: existing or new user, or None if the user is opted out
|
||||
"""
|
||||
assert cls != User
|
||||
user = cls.get_by_id(id)
|
||||
if user:
|
||||
if user.status == 'opt-out':
|
||||
return None
|
||||
# override direct from False => True if set
|
||||
# TODO: propagate more props into user?
|
||||
direct = kwargs.get('direct')
|
||||
|
|
|
@ -99,6 +99,11 @@ class UserTest(TestCase):
|
|||
|
||||
self.assertEqual('y.z', Fake.get_or_create('a.b').key.id())
|
||||
|
||||
def test_get_or_create_opted_out(self):
|
||||
user = self.make_user('fake:user', cls=Fake,
|
||||
obj_as1 = {'summary': '#nobridge'})
|
||||
self.assertIsNone(Fake.get_or_create('fake:user'))
|
||||
|
||||
def test_public_pem(self):
|
||||
pem = self.user.public_pem()
|
||||
self.assertTrue(pem.decode().startswith('-----BEGIN PUBLIC KEY-----\n'), pem)
|
||||
|
|
Ładowanie…
Reference in New Issue