Add tests for the wagtail_hooks.serve_variaton
This commit is contained in:
@ -11,7 +11,9 @@ from tests.factories.site import SiteFactory
|
||||
|
||||
@pytest.fixture(scope='function')
|
||||
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')
|
||||
page2 = ContentPageFactory(parent=site.root_page, slug='page-2')
|
||||
ContentPageFactory(parent=page1, slug='page-1-1')
|
||||
@ -21,7 +23,7 @@ def site():
|
||||
|
||||
@pytest.fixture
|
||||
def segmented_page(site):
|
||||
page = ContentPageFactory(parent=site.root_page)
|
||||
page = ContentPageFactory(parent=site.root_page, slug='personalised')
|
||||
segment = SegmentFactory()
|
||||
return page.personalisable_metadata.copy_for_segment(segment)
|
||||
|
||||
|
41
tests/unit/test_wagtail_hooks.py
Normal file
41
tests/unit/test_wagtail_hooks.py
Normal 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
|
Reference in New Issue
Block a user