8
This repository has been archived on 2023-05-07. You can view files and clone it, but cannot push or open issues or pull requests.
Files
cavemanon-wagtail-personali…/tests/unit/test_models.py
Michael van Tellingen 7076973fc8 Refactor personalisable pages
Instead of working with django model mixins it now uses a separate
model entity to keep track of the personalized pages (metadata).

The current downside of this approach is that the segment of an existing
variant is no longer easily adjustable for now.
2017-05-31 21:31:40 +02:00

72 lines
1.9 KiB
Python

from __future__ import absolute_import, unicode_literals
import datetime
import pytest
from django.http import HttpRequest
from freezegun import freeze_time
from wagtail.wagtailcore.models import Site
from wagtail_personalisation import rules
# Time Rule tests
@freeze_time("10:00:00")
def test_create_time_rule():
time_rule = rules.TimeRule(start_time=datetime.time(8, 0, 0), end_time=datetime.time(23, 0, 0))
assert time_rule.test_user() is True
@freeze_time("10:00:00")
def test_time_rule_false():
time_rule = rules.TimeRule(start_time=datetime.time(11, 0, 0), end_time=datetime.time(23, 0, 0))
assert time_rule.test_user() is False
@freeze_time("10:00:00")
def test_time_rule_reverse():
time_rule = rules.TimeRule(start_time=datetime.time(13, 0, 0), end_time=datetime.time(9, 0, 0))
assert time_rule.test_user() is False
@freeze_time("10:00:00")
def test_time_rule_reverse_next_day():
time_rule = rules.TimeRule(start_time=datetime.time(11, 0, 0), end_time=datetime.time(11, 0, 0))
assert time_rule.test_user() is False
# Visit Count Rule tests
def test_visit_count_rule():
rules.VisitCountRule()
# Test test
@pytest.mark.django_db
def test_test(rf, site):
request = HttpRequest()
request.path = '/'
request.META['HTTP_HOST'] = 'localhost'
request.META['SERVER_PORT'] = 8000
assert Site.find_for_request(request) == site
@pytest.mark.django_db
class TestPage(object):
def test_page_copy_for_segment(self, segmented_page):
assert segmented_page
def test_page_has_variations(self, segmented_page):
assert not segmented_page.personalisable_metadata.is_canonical
assert not segmented_page.personalisable_metadata.has_variations
canonical = segmented_page.personalisable_metadata.canonical_page
assert canonical.personalisable_metadata.is_canonical
assert canonical.personalisable_metadata.has_variations