diff --git a/combo/public/views.py b/combo/public/views.py index bf35b5ec..6ed152d5 100644 --- a/combo/public/views.py +++ b/combo/public/views.py @@ -253,6 +253,8 @@ def skeleton(request): redirect_url = utils.get_templated_url(page.redirect_url) except utils.TemplateError: continue + if not redirect_url: + continue if source.startswith(redirect_url): if selected_page is None or len(redirect_url) > len(selected_page.get_redirect_url()): selected_page = page diff --git a/tests/test_public.py b/tests/test_public.py index fdd495c7..f7375a51 100644 --- a/tests/test_public.py +++ b/tests/test_public.py @@ -331,6 +331,14 @@ def test_page_skeleton(app): assert "This page doesn't exist" in resp.text assert resp.status_code == 200 + # do not consider empty redirection + Page.objects.all().delete() + page = Page(title='EmptyRedirection', slug='emptyredir', template_name='standard', + redirect_url='{{ is_empty }}') + page.save() + resp = app.get('/__skeleton__/?source=%s' % quote('http://127.0.0.1:8999/')) + assert resp.headers['x-combo-page-id'] == '__root' + def test_subpage_location(app): Page.objects.all().delete()