feedcell: do not fail if service is not available (#21383)
This commit is contained in:
parent
8f0bc9a059
commit
82503cdd7d
|
@ -930,10 +930,15 @@ class FeedCell(CellBase):
|
|||
cache_key = hashlib.md5(smart_bytes(self.url)).hexdigest()
|
||||
feed_content = cache.get(cache_key)
|
||||
if not feed_content:
|
||||
feed_response = requests.get(utils.get_templated_url(self.url))
|
||||
if feed_response.status_code == 200:
|
||||
feed_content = feed_response.content
|
||||
cache.set(cache_key, feed_content, 600)
|
||||
try:
|
||||
feed_response = requests.get(utils.get_templated_url(self.url))
|
||||
feed_response.raise_for_status()
|
||||
except (requests.exceptions.RequestException):
|
||||
pass
|
||||
else:
|
||||
if feed_response.status_code == 200:
|
||||
feed_content = feed_response.content
|
||||
cache.set(cache_key, feed_content, 600)
|
||||
if feed_content:
|
||||
extra_context['feed'] = feedparser.parse(feed_content)
|
||||
if self.limit:
|
||||
|
|
|
@ -21,6 +21,7 @@ try:
|
|||
import mellon
|
||||
except ImportError:
|
||||
mellon = None
|
||||
import requests
|
||||
|
||||
from combo.wsgi import application
|
||||
from combo.data.models import (Page, CellBase, TextCell, ParentContentCell,
|
||||
|
@ -743,6 +744,10 @@ def test_synchronous_placeholder(app):
|
|||
resp = app.get('/foo/', status=200)
|
||||
assert resp.text.count('data-ajax-cell-must-load="true"') == 1
|
||||
|
||||
requests_get.side_effect = requests.exceptions.ConnectionError()
|
||||
resp = app.get('/foo/', status=200)
|
||||
|
||||
|
||||
def test_redirects(app):
|
||||
Redirect.objects.all().delete()
|
||||
Page.objects.all().delete()
|
||||
|
|
Loading…
Reference in New Issue