7
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_rules_query.py
2017-06-02 10:11:46 +02:00

127 lines
3.2 KiB
Python

import pytest
from tests.factories.rule import QueryRuleFactory
from tests.factories.segment import SegmentFactory
@pytest.mark.django_db
def test_request_query_rule(client, site):
segment = SegmentFactory(name='Query')
QueryRuleFactory(
parameter="query",
value="value",
segment=segment,
)
response = client.get('/?query=value')
assert response.status_code == 200
assert any(
item['encoded_name'] == 'query' for item in client.session['segments'])
@pytest.mark.django_db
def test_request_only_one_query_rule(client, site):
segment = SegmentFactory(name='Query')
QueryRuleFactory(
parameter="query",
value="value",
segment=segment
)
response = client.get('/?test=test&query=value')
assert response.status_code == 200
assert any(
item['encoded_name'] == 'query' for item in client.session['segments'])
@pytest.mark.django_db
def test_request_multiple_queries(client, site):
segment = SegmentFactory(name='Multiple queries')
QueryRuleFactory(
parameter="test",
value="test",
segment=segment
)
QueryRuleFactory(
parameter="query",
value="value",
segment=segment,
)
response = client.get('/?test=test&query=value')
assert response.status_code == 200
assert any(
item['encoded_name'] == 'multiple-queries'
for item in client.session['segments']
)
@pytest.mark.django_db
def test_request_persistent_segmenting(client, site):
segment = SegmentFactory(name='Persistent', persistent=True)
QueryRuleFactory(
parameter="test",
value="test",
segment=segment
)
response = client.get('/?test=test')
assert response.status_code == 200
assert any(
item['encoded_name'] == 'persistent'
for item in client.session['segments'])
response = client.get('/')
assert response.status_code == 200
assert any(
item['encoded_name'] == 'persistent'
for item in client.session['segments'])
@pytest.mark.django_db
def test_request_non_persistent_segmenting(client, site):
segment = SegmentFactory(name='Non Persistent')
QueryRuleFactory(
parameter="test",
value="test",
segment=segment
)
response = client.get('/?test=test')
assert response.status_code == 200
assert any(
item['encoded_name'] == 'non-persistent'
for item in client.session['segments'])
response = client.get('/')
assert response.status_code == 200
assert not any(
item['encoded_name'] == 'non-persistent'
for item in client.session['segments'])
@pytest.mark.django_db
def test_request_match_any_segmenting(client, site):
segment = SegmentFactory(name='Match any', match_any=True)
QueryRuleFactory(
parameter='test',
value='test',
segment=segment,
)
QueryRuleFactory(
parameter='test2',
value='test2',
segment=segment
)
response = client.get('/?test=test')
assert response.status_code == 200
assert any(
item['encoded_name'] == 'match-any'
for item in client.session['segments'])