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