39 lines
1.1 KiB
Python
39 lines
1.1 KiB
Python
import pytest
|
|
|
|
from tests.factories.rule import DeviceRuleFactory
|
|
from tests.factories.segment import SegmentFactory
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_device_rule_create():
|
|
segment = SegmentFactory(name='DeviceSegment')
|
|
device_rule = DeviceRuleFactory(mobile=True, segment=segment)
|
|
|
|
assert device_rule.mobile is True
|
|
assert device_rule.tablet is False
|
|
assert device_rule.desktop is False
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_request_device_segment(client, site):
|
|
device_only_segment = SegmentFactory(name='Device only')
|
|
DeviceRuleFactory(
|
|
tablet=True,
|
|
segment=device_only_segment)
|
|
|
|
client.get('/', **{'HTTP_USER_AGENT': 'Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X)'})
|
|
|
|
assert client.session['segments'][0]['encoded_name'] == 'device-only'
|
|
|
|
|
|
@pytest.mark.django_db
|
|
def test_request_device_segment_no_match(client, site):
|
|
no_device_segment = SegmentFactory(name='No device')
|
|
DeviceRuleFactory(
|
|
mobile=True,
|
|
segment=no_device_segment)
|
|
|
|
client.get('/', **{'HTTP_USER_AGENT': 'Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X)'})
|
|
|
|
assert not client.session['segments']
|