6
0
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.
cavemanon-wagtail-personali.../tests/unit/test_rules_mixed.py
2022-11-18 17:44:17 +00:00

79 lines
2.2 KiB
Python

from __future__ import absolute_import, unicode_literals
import datetime
import pytest
from freezegun import freeze_time
from tests.factories.rule import ReferralRuleFactory, TimeRuleFactory
from tests.factories.segment import SegmentFactory
@pytest.mark.django_db
def test_no_segments(client, site):
response = client.get("/")
assert response.status_code == 200
assert client.session["segments"] == []
@pytest.mark.django_db
def test_referral_segment(client, site):
referral_segment = SegmentFactory(name="Referral")
ReferralRuleFactory(regex_string="test.test", segment=referral_segment)
response = client.get("/", **{"HTTP_REFERER": "test.test"})
assert response.status_code == 200
assert client.session["segments"][0]["encoded_name"] == "referral"
@pytest.mark.django_db
@freeze_time("10:00:00")
def test_time_and_referral_segment(client, site):
segment = SegmentFactory(name="Both")
TimeRuleFactory(
start_time=datetime.time(8, 0, 0),
end_time=datetime.time(23, 0, 0),
segment=segment,
)
ReferralRuleFactory(regex_string="test.test", segment=segment)
response = client.get("/", **{"HTTP_REFERER": "test.test"})
assert response.status_code == 200
assert client.session["segments"][0]["encoded_name"] == "both"
@pytest.mark.django_db
@freeze_time("7:00:00")
def test_no_time_but_referral_segment(client, site):
segment = SegmentFactory(name="Not both")
TimeRuleFactory(
start_time=datetime.time(8, 0, 0),
end_time=datetime.time(23, 0, 0),
segment=segment,
)
ReferralRuleFactory(regex_string="test.test", segment=segment)
response = client.get("/", **{"HTTP_REFERER": "test.test"})
assert response.status_code == 200
assert len(client.session["segments"]) == 0
@pytest.mark.django_db
@freeze_time("9:00:00")
def test_time_but_no_referral_segment(client, site):
segment = SegmentFactory(name="Not both")
TimeRuleFactory(
start_time=datetime.time(8, 0, 0),
end_time=datetime.time(23, 0, 0),
segment=segment,
)
ReferralRuleFactory(regex_string="test.test", segment=segment)
response = client.get("/")
assert response.status_code == 200
assert len(client.session["segments"]) == 0