41 lines
1.1 KiB
Python
41 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"]
|