From 8f6fd7b2feabad721f226a7b03f1fcb3fb60a263 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Laur=C3=A9line=20Gu=C3=A9rin?= Date: Thu, 17 Nov 2022 09:08:23 +0100 Subject: [PATCH] wcs: fix |objects filter without cards in context (#67554) --- publik_django_templatetags/wcs/templatetags/wcs.py | 5 ++++- tests/test_wcs.py | 6 ++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/publik_django_templatetags/wcs/templatetags/wcs.py b/publik_django_templatetags/wcs/templatetags/wcs.py index f7e277e..a9ea314 100644 --- a/publik_django_templatetags/wcs/templatetags/wcs.py +++ b/publik_django_templatetags/wcs/templatetags/wcs.py @@ -21,7 +21,10 @@ register = template.Library() @register.filter def objects(cards, slug): - return getattr(cards, slug).objects + try: + return getattr(cards, slug).objects + except AttributeError: + return None @register.filter diff --git a/tests/test_wcs.py b/tests/test_wcs.py index f9d1fd4..da4400f 100644 --- a/tests/test_wcs.py +++ b/tests/test_wcs.py @@ -110,6 +110,12 @@ def test_objects(mock_send, settings, context, nocache): t.render(context) assert mock_send.call_args_list[0][0][0].url.startswith('http://127.0.0.3:8999/api/cards/bar/list?') + context = Context({}) # no cards in context + mock_send.reset_mock() + t = Template('{{ cards|objects:"bar" }}') + t.render(context) + assert mock_send.call_args_list == [] + @mock.patch('requests.Session.send', side_effect=mocked_requests_send) def test_with_custom_view(mock_send, context, nocache):