kopia lustrzana https://github.com/snarfed/bridgy-fed
bug fix for deb4b12659
fixes https://console.cloud.google.com/errors/detail/CNrPlPDIlZ-CUA;time=P30D?project=bridgy-federatedpull/448/head
rodzic
abf7a9adfe
commit
bd748f5db1
|
@ -171,8 +171,9 @@ class ActivityPub(Protocol):
|
|||
try:
|
||||
key_actor = cls.get_object(keyId, user=user).as2
|
||||
except BadGateway:
|
||||
if (activity.get('type') == 'Delete' and
|
||||
fragmentless(keyId) == fragmentless(activity.get('object'))):
|
||||
obj_id = as1.get_object(activity).get('id')
|
||||
if (activity.get('type') == 'Delete' and obj_id and
|
||||
fragmentless(keyId) == fragmentless(obj_id)):
|
||||
logging.info("Object/actor being deleted is also keyId; ignoring")
|
||||
abort(202, 'OK')
|
||||
raise
|
||||
|
|
|
@ -902,6 +902,17 @@ class ActivityPubTest(testutil.TestCase):
|
|||
got = self.post('/inbox', json={**DELETE, 'object': 'http://my/key/id'})
|
||||
self.assertEqual(202, got.status_code)
|
||||
|
||||
def test_delete_actor_object_not_stored(self, _, mock_get, ___):
|
||||
self.key_id_obj.delete()
|
||||
Protocol.get_object.cache.clear()
|
||||
|
||||
mock_get.return_value = requests_response(status=410)
|
||||
got = self.post('/inbox', json={
|
||||
**DELETE,
|
||||
'object': {'id': 'http://my/key/id'},
|
||||
})
|
||||
self.assertEqual(202, got.status_code)
|
||||
|
||||
def test_delete_note(self, _, mock_get, ___):
|
||||
obj = Object(id='http://an/obj', as2={})
|
||||
obj.put()
|
||||
|
|
Ładowanie…
Reference in New Issue