Add tests for MultipleChoiceField icontains and negation

This commit is contained in:
Brian Tiemann 2024-10-03 08:34:10 -04:00
parent 6df76ae870
commit 0904ca7f31

View File

@ -408,9 +408,9 @@ class DynamicFilterLookupExpressionTest(TestCase):
region.save() region.save()
sites = ( sites = (
Site(name='Site 1', slug='abc-site-1', region=regions[0]), Site(name='Site 1', slug='abc-site-1', region=regions[0], status='active'),
Site(name='Site 2', slug='def-site-2', region=regions[1]), Site(name='Site 2', slug='def-site-2', region=regions[1], status='active'),
Site(name='Site 3', slug='ghi-site-3', region=regions[2]), Site(name='Site 3', slug='ghi-site-3', region=regions[2], status='planned'),
) )
Site.objects.bulk_create(sites) Site.objects.bulk_create(sites)
@ -450,6 +450,14 @@ class DynamicFilterLookupExpressionTest(TestCase):
params = {'slug__ic': ['-1']} params = {'slug__ic': ['-1']}
self.assertEqual(SiteFilterSet(params, Site.objects.all()).qs.count(), 1) self.assertEqual(SiteFilterSet(params, Site.objects.all()).qs.count(), 1)
def test_site_status_icontains(self):
params = {'status__ic': [SiteStatusChoices.STATUS_ACTIVE]}
self.assertEqual(SiteFilterSet(params, Site.objects.all()).qs.count(), 2)
def test_site_status_icontains_negation(self):
params = {'status__nic': [SiteStatusChoices.STATUS_ACTIVE]}
self.assertEqual(SiteFilterSet(params, Site.objects.all()).qs.count(), 1)
def test_site_slug_icontains_negation(self): def test_site_slug_icontains_negation(self):
params = {'slug__nic': ['-1']} params = {'slug__nic': ['-1']}
self.assertEqual(SiteFilterSet(params, Site.objects.all()).qs.count(), 2) self.assertEqual(SiteFilterSet(params, Site.objects.all()).qs.count(), 2)