7

adds segment middleware testing (simple)

This commit is contained in:
Boris Besemer
2016-11-30 17:20:42 +01:00
parent 68f91a6da2
commit fd4ddc4395
6 changed files with 60 additions and 31 deletions

View File

@ -1,21 +1,45 @@
import pytest
import datetime
import pytest
from freezegun import freeze_time
from django.test.client import Client
from tests.factories.site import SiteFactory
from tests.factories.segment import SegmentFactory
from tests.factories.segment import SegmentFactory, TimeRuleFactory, ReferralRuleFactory
@pytest.mark.django_db
class TestUserSegmenting(object):
def setup(self):
"""
Sets up a user segment and a site root to test segmenting
Sets up a site root to test segmenting
"""
self.standard_segment = SegmentFactory(name='Standard')
self.time_only_segment = SegmentFactory(name='Time only')
self.site = SiteFactory()
def test_no_segments(self, client):
request = client.get('/')
def test_standard_segment(self, rf):
request = rf.get('/')
assert client.session['segments'] == []
@freeze_time("10:00:00")
def test_time_segment(self, client):
time_only_segment = SegmentFactory(name='Time only')
time_rule = TimeRuleFactory(
start_time=datetime.time(8, 0, 0),
end_time=datetime.time(23, 0, 0),
segment=time_only_segment)
request = client.get('/')
assert client.session['segments'][0]['encoded_name'] == 'time-only'
def test_referral_segment(self, client):
referral_segment = SegmentFactory(name='Referral')
referral_rule = ReferralRuleFactory(
regex_string="test.test",
segment=referral_segment
)
client.get('/', **{ 'HTTP_REFERER': 'test.test'})
assert client.session['segments'][0]['encoded_name'] == 'referral'