[tests] added simple filter tests
parent
e9a4de626c
commit
6c04bcf6d9
|
|
@ -23,8 +23,9 @@ def create_test_data():
|
|||
ModelA.objects.all().delete()
|
||||
ModelB.objects.all().delete()
|
||||
|
||||
# TODO: create null values as well
|
||||
c_models = list()
|
||||
for i in range(1, 30):
|
||||
for i in range(1, 36):
|
||||
model_a = ModelA()
|
||||
model_b = ModelB()
|
||||
model_c = ModelC()
|
||||
|
|
@ -38,8 +39,8 @@ def create_test_data():
|
|||
model_a.dropdown_lte3 = i % 3
|
||||
model_a.dropdown_gt3 = i % 4
|
||||
model_a.choices_dropdown = i % 9 +1
|
||||
model_a.multiselect = i % 4
|
||||
model_a.multiselect_dropdown = i % 4
|
||||
model_a.multiselect = i % 5
|
||||
model_a.multiselect_dropdown = i % 6
|
||||
model_a.related_dropdown = model_b
|
||||
model_a.multiselect_related = model_b
|
||||
model_a.multiselect_related_dropdown = model_b
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ class FilterTest(TestCase):
|
|||
self.client.force_login(self.admin)
|
||||
self.url = reverse('admin:testapp_modela_changelist')
|
||||
|
||||
def test_01_dropdown_select(self):
|
||||
def test_01_dropdown(self):
|
||||
resp = self.client.get(self.url)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
|
||||
|
|
@ -31,3 +31,22 @@ class FilterTest(TestCase):
|
|||
self.assertIn('choices-dropdown_filter_select', resp.content.decode('utf8'))
|
||||
self.assertIn('related-dropdown_filter_select', resp.content.decode('utf8'))
|
||||
self.assertIn('multiselect-related-dropdown_select', resp.content.decode('utf8'))
|
||||
|
||||
def test_02_filtering(self):
|
||||
queries = (
|
||||
('', 35),
|
||||
('dropdown_gt3=1&dropdown_lte3=0', 3),
|
||||
('dropdown_gt3=1&multiselect_dropdown__in=3', 3),
|
||||
('dropdown_gt3=1&multiselect_dropdown__in=3,4,5', 6),
|
||||
('choices_dropdown__exact=3&multiselect_dropdown__in=0,1,2', 2),
|
||||
('multiselect_dropdown__in=0,1,2&related_dropdown__id__exact=6', 1),
|
||||
('related_dropdown__id__exact=6&multiselect_dropdown__in=3,4,5', 0),
|
||||
('multiselect_dropdown__in=3,4,5&multiselect_related__id__in=35,34,33,32', 3),
|
||||
('multiselect_dropdown__in=3,4,5&multiselect_related_dropdown__id__in=29,30,31,32,33,34,35', 4),
|
||||
('boolean_annotation__exact=1&multiselect__in=0,2,4', 14),
|
||||
)
|
||||
for query, count in queries:
|
||||
resp = self.client.get(self.url + '?' + query)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
self.assertIn('{} selected'.format(count), resp.content.decode('utf8'))
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue