|
|
@@ -681,7 +681,12 @@ class CustomFieldFilterTest(TestCase):
|
|
|
cf.content_types.set([obj_type])
|
|
|
|
|
|
# Selection filtering
|
|
|
- cf = CustomField(name='cf8', type=CustomFieldTypeChoices.TYPE_URL, choices=['Foo', 'Bar', 'Baz'])
|
|
|
+ cf = CustomField(name='cf8', type=CustomFieldTypeChoices.TYPE_SELECT, choices=['Foo', 'Bar', 'Baz'])
|
|
|
+ cf.save()
|
|
|
+ cf.content_types.set([obj_type])
|
|
|
+
|
|
|
+ # Multiselect filtering
|
|
|
+ cf = CustomField(name='cf9', type=CustomFieldTypeChoices.TYPE_MULTISELECT, choices=['A', 'AA', 'B', 'C'])
|
|
|
cf.save()
|
|
|
cf.content_types.set([obj_type])
|
|
|
|
|
|
@@ -695,6 +700,7 @@ class CustomFieldFilterTest(TestCase):
|
|
|
'cf6': 'http://foo.example.com/',
|
|
|
'cf7': 'http://foo.example.com/',
|
|
|
'cf8': 'Foo',
|
|
|
+ 'cf9': ['A', 'B'],
|
|
|
}),
|
|
|
Site(name='Site 2', slug='site-2', custom_field_data={
|
|
|
'cf1': 200,
|
|
|
@@ -705,9 +711,9 @@ class CustomFieldFilterTest(TestCase):
|
|
|
'cf6': 'http://bar.example.com/',
|
|
|
'cf7': 'http://bar.example.com/',
|
|
|
'cf8': 'Bar',
|
|
|
+ 'cf9': ['AA', 'B'],
|
|
|
}),
|
|
|
- Site(name='Site 3', slug='site-3', custom_field_data={
|
|
|
- }),
|
|
|
+ Site(name='Site 3', slug='site-3'),
|
|
|
])
|
|
|
|
|
|
def test_filter_integer(self):
|
|
|
@@ -730,3 +736,10 @@ class CustomFieldFilterTest(TestCase):
|
|
|
|
|
|
def test_filter_select(self):
|
|
|
self.assertEqual(self.filterset({'cf_cf8': 'Foo'}, self.queryset).qs.count(), 1)
|
|
|
+ self.assertEqual(self.filterset({'cf_cf8': 'Bar'}, self.queryset).qs.count(), 1)
|
|
|
+ self.assertEqual(self.filterset({'cf_cf8': 'Baz'}, self.queryset).qs.count(), 0)
|
|
|
+
|
|
|
+ def test_filter_multiselect(self):
|
|
|
+ self.assertEqual(self.filterset({'cf_cf9': 'A'}, self.queryset).qs.count(), 1)
|
|
|
+ self.assertEqual(self.filterset({'cf_cf9': 'B'}, self.queryset).qs.count(), 2)
|
|
|
+ self.assertEqual(self.filterset({'cf_cf9': 'C'}, self.queryset).qs.count(), 0)
|