Projet

Général

Profil

0001-feedcell-do-not-fail-if-service-is-not-available-213.patch

Lauréline Guérin, 22 octobre 2019 11:19

Télécharger (2,23 ko)

Voir les différences:

Subject: [PATCH] feedcell: do not fail if service is not available (#21383)

 combo/data/models.py | 13 +++++++++----
 tests/test_public.py |  5 +++++
 2 files changed, 14 insertions(+), 4 deletions(-)
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
-