From 3dd41a03db6e8d186abca7a810743849804a71af Mon Sep 17 00:00:00 2001 From: Valentin Deniaud Date: Thu, 4 Nov 2021 14:38:02 +0100 Subject: [PATCH] public: handle snapshot of redirected page (#57786) --- combo/public/views.py | 2 +- tests/test_manager.py | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/combo/public/views.py b/combo/public/views.py index ec7d8eb3..a067743e 100644 --- a/combo/public/views.py +++ b/combo/public/views.py @@ -521,7 +521,7 @@ def publish_page(request, page, status=200, template_name=None): if page.redirect_url: context = {'request': request} - context.update(request.extra_context_data or {}) + context.update(getattr(request, 'extra_context_data', {})) try: redirect_url = page.get_redirect_url(context=context) except utils.TemplateError: diff --git a/tests/test_manager.py b/tests/test_manager.py index 681f8b0e..92aa12ba 100644 --- a/tests/test_manager.py +++ b/tests/test_manager.py @@ -2361,6 +2361,17 @@ def test_view_old_snapshot(app, admin_user): resp = resp.click('view') +def test_view_snapshot_redirect_url(app, admin_user): + page = Page.objects.create(title='One', slug='one', redirect_url='http://example.com') + PageSnapshot.take(page) + + app = login(app) + resp = app.get('/manage/pages/%s/' % page.pk) + resp = resp.click('History') + resp = resp.click('view') + assert resp.location == 'http://example.com' + + def test_django_admin(app, admin_user): resp = app.get('/admin/') resp = resp.follow() # -> /admin/login/ -- 2.30.2