7

Add tests for the wagtail_hooks.serve_variaton

This commit is contained in:
Michael van Tellingen
2017-06-02 10:19:32 +02:00
parent 35c22cb6af
commit 282baa4787
2 changed files with 45 additions and 2 deletions

View File

@ -11,7 +11,9 @@ from tests.factories.site import SiteFactory
@pytest.fixture(scope='function') @pytest.fixture(scope='function')
def site(): def site():
site = SiteFactory(is_default_site=True) root_page = ContentPageFactory(parent=None, slug='')
site = SiteFactory(is_default_site=True, root_page=root_page)
page1 = ContentPageFactory(parent=site.root_page, slug='page-1') page1 = ContentPageFactory(parent=site.root_page, slug='page-1')
page2 = ContentPageFactory(parent=site.root_page, slug='page-2') page2 = ContentPageFactory(parent=site.root_page, slug='page-2')
ContentPageFactory(parent=page1, slug='page-1-1') ContentPageFactory(parent=page1, slug='page-1-1')
@ -21,7 +23,7 @@ def site():
@pytest.fixture @pytest.fixture
def segmented_page(site): def segmented_page(site):
page = ContentPageFactory(parent=site.root_page) page = ContentPageFactory(parent=site.root_page, slug='personalised')
segment = SegmentFactory() segment = SegmentFactory()
return page.personalisable_metadata.copy_for_segment(segment) return page.personalisable_metadata.copy_for_segment(segment)

View File

@ -0,0 +1,41 @@
import pytest
from wagtail_personalisation import adapters, wagtail_hooks
@pytest.mark.django_db
def test_serve_variation_no_variant(site, rf):
page = site.root_page
request = rf.get('/')
args = tuple()
kwargs = {}
result = wagtail_hooks.serve_variation(page, request, args, kwargs)
assert result is None
@pytest.mark.django_db
def test_serve_variation_with_variant_no_segment(site, rf, segmented_page):
request = rf.get('/')
args = tuple()
kwargs = {}
page = segmented_page.personalisable_metadata.canonical_page
result = wagtail_hooks.serve_variation(page, request, args, kwargs)
assert result is None
@pytest.mark.django_db
def test_serve_variation_with_variant_segmented(site, rf, segmented_page):
request = rf.get('/')
args = tuple()
kwargs = {}
page = segmented_page.personalisable_metadata.canonical_page
segment = segmented_page.personalisable_metadata.segment
adapter = adapters.get_segment_adapter(request)
adapter.set_segments([segment])
result = wagtail_hooks.serve_variation(page, request, args, kwargs)
assert result.status_code == 200