[tests] made fields nullable and adapted the test data and tests
parent
0d55340275
commit
f52d006ba0
|
|
@ -25,27 +25,33 @@ def create_test_data():
|
|||
|
||||
# TODO: create null values as well
|
||||
c_models = list()
|
||||
for i in range(1, 36):
|
||||
model_a = ModelA()
|
||||
model_b = ModelB()
|
||||
model_c = ModelC()
|
||||
for i in range(36):
|
||||
|
||||
model_b.id = i
|
||||
model_b.save()
|
||||
model_c.id = i
|
||||
model_c.save()
|
||||
c_models.append(model_c)
|
||||
if i > 0:
|
||||
model_a = ModelA()
|
||||
model_b = ModelB()
|
||||
model_c = ModelC()
|
||||
|
||||
model_b.id = i
|
||||
model_b.save()
|
||||
model_c.id = i
|
||||
model_c.save()
|
||||
c_models.append(model_c)
|
||||
|
||||
model_a.dropdown_lte3 = None if i % 3 == 0 else i % 3
|
||||
model_a.dropdown_gt3 = i % 4
|
||||
model_a.choices_dropdown = i % 9 +1
|
||||
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
|
||||
model_a.save()
|
||||
model_a.c_models.set(c_models)
|
||||
else:
|
||||
model_a = ModelA()
|
||||
model_a.save()
|
||||
|
||||
model_a.dropdown_lte3 = i % 3
|
||||
model_a.dropdown_gt3 = i % 4
|
||||
model_a.choices_dropdown = i % 9 +1
|
||||
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
|
||||
model_a.save()
|
||||
model_a.c_models.set(c_models)
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
# Generated by Django 2.2.16 on 2020-09-05 10:45
|
||||
# Generated by Django 2.2.16 on 2020-09-05 21:10
|
||||
|
||||
from django.db import migrations, models
|
||||
import django.db.models.deletion
|
||||
|
|
@ -28,15 +28,15 @@ class Migration(migrations.Migration):
|
|||
name='ModelA',
|
||||
fields=[
|
||||
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
|
||||
('dropdown_lte3', models.IntegerField()),
|
||||
('dropdown_gt3', models.IntegerField()),
|
||||
('multiselect', models.IntegerField()),
|
||||
('multiselect_dropdown', models.IntegerField()),
|
||||
('choices_dropdown', models.CharField(blank=True, choices=[('1', 'one'), ('2', 'two'), ('3', 'three'), ('4', 'four'), ('5', 'five'), ('6', 'six'), ('7', 'seven'), ('8', 'eight'), ('9', 'nine')], max_length=255)),
|
||||
('dropdown_lte3', models.IntegerField(blank=True, null=True)),
|
||||
('dropdown_gt3', models.IntegerField(blank=True, null=True)),
|
||||
('multiselect', models.IntegerField(blank=True, null=True)),
|
||||
('multiselect_dropdown', models.IntegerField(blank=True, null=True)),
|
||||
('choices_dropdown', models.CharField(blank=True, choices=[('1', 'one'), ('2', 'two'), ('3', 'three'), ('4', 'four'), ('5', 'five'), ('6', 'six'), ('7', 'seven'), ('8', 'eight'), ('9', 'nine')], max_length=255, null=True)),
|
||||
('c_models', models.ManyToManyField(to='testapp.ModelC')),
|
||||
('multiselect_related', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='multiselect_related_reverse', to='testapp.ModelB')),
|
||||
('multiselect_related_dropdown', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='multiselect_related_dropdown_reverse', to='testapp.ModelB')),
|
||||
('related_dropdown', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='related_dropdown_reverse', to='testapp.ModelB')),
|
||||
('multiselect_related', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='multiselect_related_reverse', to='testapp.ModelB')),
|
||||
('multiselect_related_dropdown', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='multiselect_related_dropdown_reverse', to='testapp.ModelB')),
|
||||
('related_dropdown', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='related_dropdown_reverse', to='testapp.ModelB')),
|
||||
],
|
||||
),
|
||||
]
|
||||
|
|
|
|||
|
|
@ -29,14 +29,29 @@ class ModelA(models.Model):
|
|||
('8', 'eight'),
|
||||
('9', 'nine'),
|
||||
)
|
||||
dropdown_lte3 = models.IntegerField()
|
||||
dropdown_gt3 = models.IntegerField()
|
||||
multiselect = models.IntegerField()
|
||||
multiselect_dropdown = models.IntegerField()
|
||||
choices_dropdown = models.CharField(max_length=255, blank=True, choices=CHOICES)
|
||||
related_dropdown = models.ForeignKey('ModelB', on_delete=models.CASCADE, related_name='related_dropdown_reverse')
|
||||
multiselect_related = models.ForeignKey('ModelB', on_delete=models.CASCADE, related_name='multiselect_related_reverse')
|
||||
multiselect_related_dropdown = models.ForeignKey('ModelB', on_delete=models.CASCADE, related_name='multiselect_related_dropdown_reverse')
|
||||
dropdown_lte3 = models.IntegerField(blank=True, null=True)
|
||||
dropdown_gt3 = models.IntegerField(blank=True, null=True)
|
||||
multiselect = models.IntegerField(blank=True, null=True)
|
||||
multiselect_dropdown = models.IntegerField(blank=True, null=True)
|
||||
choices_dropdown = models.CharField(max_length=255, blank=True, null=True, choices=CHOICES)
|
||||
related_dropdown = models.ForeignKey(
|
||||
'ModelB',
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
related_name='related_dropdown_reverse')
|
||||
multiselect_related = models.ForeignKey(
|
||||
'ModelB',
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
related_name='multiselect_related_reverse')
|
||||
multiselect_related_dropdown = models.ForeignKey(
|
||||
'ModelB',
|
||||
blank=True,
|
||||
null=True,
|
||||
on_delete=models.CASCADE,
|
||||
related_name='multiselect_related_dropdown_reverse')
|
||||
c_models = models.ManyToManyField('ModelC')
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -34,8 +34,8 @@ class FilterTest(TestCase):
|
|||
|
||||
def test_02_filtering(self):
|
||||
queries = (
|
||||
('', 35),
|
||||
('dropdown_gt3=1&dropdown_lte3=0', 3),
|
||||
('', 36),
|
||||
('dropdown_gt3=1&dropdown_lte3__isnull=True', 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),
|
||||
|
|
@ -49,4 +49,3 @@ class FilterTest(TestCase):
|
|||
resp = self.client.get(self.url + '?' + query)
|
||||
self.assertEqual(resp.status_code, 200)
|
||||
self.assertIn('{} selected'.format(count), resp.content.decode('utf8'))
|
||||
|
||||
|
|
|
|||
|
|
@ -65,19 +65,19 @@ class LiveFilterTest(StaticLiveServerTestCase):
|
|||
select_id = 'dropdown-gt3_filter_select'
|
||||
url_query = 'dropdown_gt3=2'
|
||||
self.use_dropdown_filter(select_id, '2', url_query, 9)
|
||||
self.use_dropdown_filter(select_id, 'All', '', 35)
|
||||
self.use_dropdown_filter(select_id, 'All', '', 36)
|
||||
|
||||
# Check the choices dropdown filter:
|
||||
select_id = 'choices-dropdown_filter_select'
|
||||
url_query = 'choices_dropdown__exact=3'
|
||||
self.use_dropdown_filter(select_id, 'three', url_query, 4)
|
||||
self.use_dropdown_filter(select_id, 'All', '', 35)
|
||||
self.use_dropdown_filter(select_id, 'All', '', 36)
|
||||
|
||||
# # Check the related dropdown filter:
|
||||
select_id = 'related-dropdown_filter_select'
|
||||
url_query = 'related_dropdown__id__exact=9'
|
||||
self.use_dropdown_filter(select_id, 'ModelB 9', url_query, 1)
|
||||
self.use_dropdown_filter(select_id, 'All', '', 35)
|
||||
self.use_dropdown_filter(select_id, 'All', '', 36)
|
||||
|
||||
def use_multiselect_link(self, ul_num, li_num, item_count, selected_count, url_query):
|
||||
link = '//*[@id="changelist-filter"]/ul[{}]/li[{}]/a'.format(ul_num, li_num)
|
||||
|
|
|
|||
Loading…
Reference in New Issue