kopia lustrzana https://github.com/snarfed/bridgy-fed
Web.get_or_create bug fix: handle opted out users
fixes https://console.cloud.google.com/errors/detail/CJ2U0_Hq6cHnUA;time=P30D?project=bridgy-federatedpull/736/head
rodzic
6091cd4063
commit
fae7769d2b
|
@ -495,6 +495,17 @@ class WebTest(TestCase):
|
|||
self.assert_entities_equal(user, Web.get_by_id('foo.bar'))
|
||||
self.assertIsNone(Web.get_by_id('..foo.bar.'))
|
||||
|
||||
def test_get_or_create_existing(self, *_):
|
||||
user = Web.get_or_create('user.com')
|
||||
self.assertEqual('user.com', user.key.id())
|
||||
self.assert_entities_equal(user, self.user)
|
||||
|
||||
def test_get_or_create_existing_opted_out(self, *_):
|
||||
self.user.obj.mf2['properties']['summary'] = '#nobridge'
|
||||
self.user.obj.put()
|
||||
self.user.put()
|
||||
self.assertIsNone(Web.get_or_create('user.com'))
|
||||
|
||||
def test_bad_source_url(self, *mocks):
|
||||
orig_count = Object.query().count()
|
||||
|
||||
|
|
6
web.py
6
web.py
|
@ -94,7 +94,11 @@ class Web(User, Protocol):
|
|||
Normalizing currently consists of lower casing and removing leading and
|
||||
trailing dots.
|
||||
"""
|
||||
domain = cls.key_for(id).id().lower().strip('.')
|
||||
key = cls.key_for(id)
|
||||
if not key:
|
||||
return None # opted out
|
||||
|
||||
domain = key.id().lower().strip('.')
|
||||
return super().get_or_create(domain, **kwargs)
|
||||
|
||||
@ndb.ComputedProperty
|
||||
|
|
Ładowanie…
Reference in New Issue