From 15966c262ddb12f2c7e05a11e58571f4c0d8c146 Mon Sep 17 00:00:00 2001 From: Andy Chosak Date: Thu, 3 May 2018 21:30:28 -0400 Subject: [PATCH] additional tests for serve_shared_page hooks This commit adds some missing tests for the `before_serve_shared_page` and `after_serve_shared_page` hooks to restore complete test coverage. --- CHANGELOG.md | 1 + wagtailsharing/tests/test_views.py | 47 +++++++++++++++++++++++++----- 2 files changed, 40 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b0c5a2b..46dcb6a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ We follow the [Semantic Versioning 2.0.0](http://semver.org/) format. - Simplified CHANGELOG format. - Removed superfluous tests of `Page.get_admin_display_title`. +- Add additional tests for the `before_serve_shared_page` and `after_serve_shared_page` hooks. ## 0.6 - 2017-11-27 diff --git a/wagtailsharing/tests/test_views.py b/wagtailsharing/tests/test_views.py index 25c878f..3e753b7 100644 --- a/wagtailsharing/tests/test_views.py +++ b/wagtailsharing/tests/test_views.py @@ -12,15 +12,19 @@ from wagtailsharing.views import ServeView -def before_serve_page(page, request, args, kwargs): - return HttpResponse('before serve page hook') +def before_hook_returns_http_response(page, request, args, kwargs): + return HttpResponse('returned by hook') -def before_serve_shared_page(page, request, args, kwargs): +def before_hook_changes_page_title(page, request, args, kwargs): page.title = 'hook changed title' -def after_serve_shared_page(page, response): +def after_hook_returns_http_response(page, response): + return HttpResponse('returned by hook') + + +def after_hook_sets_response_header(page, response): response['test-hook-header'] = 'foo' @@ -137,10 +141,13 @@ def test_before_serve_page_hook_called(self): self.create_sharing_site(hostname='hostname') create_draft_page(self.default_site, title='page') - with self.register_hook('before_serve_page', before_serve_page): + with self.register_hook( + 'before_serve_page', + before_hook_returns_http_response + ): request = self.make_request('/page/', HTTP_HOST='hostname') response = ServeView.as_view()(request, request.path) - self.assertContains(response, 'before serve page hook') + self.assertContains(response, 'returned by hook') def test_before_serve_shared_page_hook_called(self): self.create_sharing_site(hostname='hostname') @@ -148,20 +155,44 @@ def test_before_serve_shared_page_hook_called(self): with self.register_hook( 'before_serve_shared_page', - before_serve_shared_page + before_hook_changes_page_title ): request = self.make_request('/page/', HTTP_HOST='hostname') response = ServeView.as_view()(request, request.path) self.assertContains(response, 'hook changed title') + def test_before_serve_shared_page_hook_returns_http_response(self): + self.create_sharing_site(hostname='hostname') + create_draft_page(self.default_site, title='page') + + with self.register_hook( + 'before_serve_shared_page', + before_hook_returns_http_response + ): + request = self.make_request('/page/', HTTP_HOST='hostname') + response = ServeView.as_view()(request, request.path) + self.assertContains(response, 'returned by hook') + def test_after_serve_shared_page_hook_called(self): self.create_sharing_site(hostname='hostname') create_draft_page(self.default_site, title='page') with self.register_hook( 'after_serve_shared_page', - after_serve_shared_page + after_hook_sets_response_header ): request = self.make_request('/page/', HTTP_HOST='hostname') response = ServeView.as_view()(request, request.path) self.assertEqual(response['test-hook-header'], 'foo') + + def test_after_serve_shared_page_hook_returns_http_response(self): + self.create_sharing_site(hostname='hostname') + create_draft_page(self.default_site, title='page') + + with self.register_hook( + 'after_serve_shared_page', + after_hook_returns_http_response + ): + request = self.make_request('/page/', HTTP_HOST='hostname') + response = ServeView.as_view()(request, request.path) + self.assertContains(response, 'returned by hook')