def test_ctypes(self): ct1 = self.ct1 clean = MultiEntityCTypeChoiceField(ctypes=[ct1]).clean self.assertEqual([ct1], clean([ct1.id])) self.assertFieldValidationError(MultiEntityCTypeChoiceField, 'invalid_choice', clean, [self.ct2.id], )
def test_invalid(self): clean = MultiEntityCTypeChoiceField().clean self.assertFieldValidationError(MultiEntityCTypeChoiceField, 'invalid_choice', clean, [self.ct1.id, self.ct3.id], ) self.assertFieldValidationError(MultiEntityCTypeChoiceField, 'invalid_choice', clean, ['not an int'], )
def test_not_required(self): ct1 = self.ct1 ct2 = self.ct2 clean = MultiEntityCTypeChoiceField(ctypes=[ct1, ct2], required=False).clean self.assertEqual([ct1], clean([ct1.id])) self.assertEqual([ct2], clean([ct2.id])) self.assertEqual([], clean('')) self.assertEqual([], clean([]))
def test_required(self): ct1 = self.ct1 ct2 = self.ct2 ContentType.objects.clear_cache() with self.assertNumQueries(0): field = MultiEntityCTypeChoiceField() clean = field.clean self.assertEqual([ct1], clean([ct1.id])) self.assertEqual([ct2], clean([ct2.id])) self.assertFieldValidationError(MultiEntityCTypeChoiceField, 'required', clean, '') self.assertFieldValidationError(MultiEntityCTypeChoiceField, 'required', clean, []) self.assertFieldValidationError(MultiEntityCTypeChoiceField, 'required', clean, None)