Web: ignore superfeedr subscribe failures

it's pretty unreliable right now 😕

for #550
pull/746/head
Ryan Barrett 2023-12-05 12:56:20 -08:00
rodzic 0e5866dbd9
commit 8f3b4c1c9b
Nie znaleziono w bazie danych klucza dla tego podpisu
ID klucza GPG: 6BE31FDF4776E9D4
2 zmienionych plików z 19 dodań i 3 usunięć

Wyświetl plik

@ -536,6 +536,19 @@ class WebTest(TestCase):
}, auth=ANY)
self.assertEqual(NOW, self.user.key.get().superfeedr_subscribed)
def test_get_or_create_subscribe_error(self, mock_get, mock_post):
self.user.obj.mf2 = ACTOR_MF2_REL_FEED_URL
self.user.obj.put()
self.user.has_redirects = False
self.user.put()
mock_post.return_value = requests_response('Nope', status=500)
user = Web.get_or_create('user.com')
self.assert_entities_equal(user, self.user, ignore=['updated'])
self.assertIsNone(user.superfeedr_subscribed)
self.assertIsNone(user.superfeedr_subscribed_feed)
def test_get_or_create_existing_subscribed(self, *_):
self.user.superfeedr_subscribed = NOW
self.user.put()
@ -748,8 +761,7 @@ class WebTest(TestCase):
no_content_type, # https://user.com/ webmention discovery
no_content_type, # http://not/fediverse webmention discovery
)
got = self.post('/queue/webmention',
data={'source': 'https://user.com/reply'})
got = self.post('/queue/webmention', data={'source': 'https://user.com/reply'})
self.assertEqual(204, got.status_code)
mock_post.assert_not_called()

6
web.py
Wyświetl plik

@ -641,7 +641,11 @@ def maybe_superfeedr_subscribe(user):
'format': 'atom',
'retrieve': 'true',
})
resp.raise_for_status()
try:
resp.raise_for_status()
except BaseException as e:
util.interpret_http_exception(e)
return
user.superfeedr_subscribed = util.now()
user.superfeedr_subscribed_feed = url