Add a meaningful error message for invalid arguments to pageurl (#4228)

pull/4322/merge
Matt Westcott 2018-04-20 08:02:29 +01:00 zatwierdzone przez Mike Dingjan
rodzic 3bd3275add
commit c82b6835a0
2 zmienionych plików z 9 dodań i 0 usunięć

Wyświetl plik

@ -16,6 +16,9 @@ def pageurl(context, page):
Outputs a page's URL as relative (/foo/bar/) if it's within the same site as the
current page, or absolute (http://example.com/foo/bar/) if not.
"""
if not hasattr(page, 'relative_url'):
raise ValueError("pageurl tag expected a Page object, got %r" % page)
try:
current_site = context['request'].site
except (KeyError, AttributeError):

Wyświetl plik

@ -37,6 +37,12 @@ class TestPageUrlTags(TestCase):
result = tpl.render(template.Context({'page': page, 'request': HttpRequest()}))
self.assertIn('<a href="/events/">Events</a>', result)
def test_bad_pageurl(self):
tpl = template.Template('''{% load wagtailcore_tags %}<a href="{% pageurl page %}">{{ page.title }}</a>''')
with self.assertRaisesRegex(ValueError, "pageurl tag expected a Page object, got None"):
tpl.render(template.Context({'page': None}))
def test_slugurl_without_request_in_context(self):
tpl = template.Template('''{% load wagtailcore_tags %}<a href="{% slugurl 'events' %}">Events</a>''')