Skip to content

Commit

Permalink
additional tests for serve_shared_page hooks
Browse files Browse the repository at this point in the history
This commit adds some missing tests for the `before_serve_shared_page`
and `after_serve_shared_page` hooks to restore complete test coverage.
  • Loading branch information
chosak committed May 4, 2018
1 parent 90a5c05 commit 15966c2
Show file tree
Hide file tree
Showing 2 changed files with 40 additions and 8 deletions.
1 change: 1 addition & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
47 changes: 39 additions & 8 deletions wagtailsharing/tests/test_views.py
Original file line number Diff line number Diff line change
Expand Up @@ -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'


Expand Down Expand Up @@ -137,31 +141,58 @@ 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')
create_draft_page(self.default_site, title='page')

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')

0 comments on commit 15966c2

Please sign in to comment.