0001-feedcell-do-not-fail-if-service-is-not-available-213.patch
combo/data/models.py | ||
---|---|---|
930 | 930 |
cache_key = hashlib.md5(smart_bytes(self.url)).hexdigest() |
931 | 931 |
feed_content = cache.get(cache_key) |
932 | 932 |
if not feed_content: |
933 |
feed_response = requests.get(utils.get_templated_url(self.url)) |
|
934 |
if feed_response.status_code == 200: |
|
935 |
feed_content = feed_response.content |
|
936 |
cache.set(cache_key, feed_content, 600) |
|
933 |
try: |
|
934 |
feed_response = requests.get(utils.get_templated_url(self.url)) |
|
935 |
feed_response.raise_for_status() |
|
936 |
except (requests.exceptions.RequestException): |
|
937 |
pass |
|
938 |
else: |
|
939 |
if feed_response.status_code == 200: |
|
940 |
feed_content = feed_response.content |
|
941 |
cache.set(cache_key, feed_content, 600) |
|
937 | 942 |
if feed_content: |
938 | 943 |
extra_context['feed'] = feedparser.parse(feed_content) |
939 | 944 |
if self.limit: |
tests/test_public.py | ||
---|---|---|
21 | 21 |
import mellon |
22 | 22 |
except ImportError: |
23 | 23 |
mellon = None |
24 |
import requests |
|
24 | 25 | |
25 | 26 |
from combo.wsgi import application |
26 | 27 |
from combo.data.models import (Page, CellBase, TextCell, ParentContentCell, |
... | ... | |
743 | 744 |
resp = app.get('/foo/', status=200) |
744 | 745 |
assert resp.text.count('data-ajax-cell-must-load="true"') == 1 |
745 | 746 | |
747 |
requests_get.side_effect = requests.exceptions.ConnectionError() |
|
748 |
resp = app.get('/foo/', status=200) |
|
749 | ||
750 | ||
746 | 751 |
def test_redirects(app): |
747 | 752 |
Redirect.objects.all().delete() |
748 | 753 |
Page.objects.all().delete() |
749 |
- |