Use correct filenames for the tests (and split some)
This commit is contained in:
126
tests/unit/test_rules_query.py
Normal file
126
tests/unit/test_rules_query.py
Normal file
@ -0,0 +1,126 @@
|
||||
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'])
|
Reference in New Issue
Block a user