63 lines
1.8 KiB
Python
63 lines
1.8 KiB
Python
import pytest
|
|
|
|
from tests.factories.segment import SegmentFactory
|
|
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.personalisation_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.personalisation_metadata.canonical_page
|
|
segment = segmented_page.personalisation_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
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_page_listing_variant_buttons(site, rf, segmented_page):
|
|
page = segmented_page.personalisation_metadata.canonical_page
|
|
|
|
SegmentFactory(name='something')
|
|
result = wagtail_hooks.page_listing_variant_buttons(page, [])
|
|
items = list(result)
|
|
assert len(items) == 1
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_page_listing_more_buttons(site, rf, segmented_page):
|
|
page = segmented_page.personalisation_metadata.canonical_page
|
|
|
|
SegmentFactory(name='something')
|
|
result = wagtail_hooks.page_listing_more_buttons(page, [])
|
|
items = list(result)
|
|
assert len(items) == 2
|