def test_invalid(self): field = OptionalChoiceField(choices=enumerate(self._team, start=1)) with self.assertRaises(ValidationError) as cm: field.clean([False, 'invalid']) self.assertEqual([ _(u'Select a valid choice. %(value)s is not one of the available choices.' ) % { 'value': 'invalid', }, ], cm.exception.messages)
def test_not_required(self): field = OptionalChoiceField(choices=enumerate(self._team, start=1), required=False) expected = (False, None) self.assertEqual(expected, field.clean([False, ''])) self.assertEqual(expected, field.clean([False, 1])) self.assertEqual(expected, field.clean([False, None])) self.assertEqual(expected, field.clean([False])) self.assertEqual(expected, field.clean([]))
def test_required(self): clean = OptionalChoiceField(choices=enumerate(self._team, start=1), required=True).clean expected = (False, None) self.assertEqual(expected, clean([False, None])) self.assertEqual(expected, clean([False])) self.assertEqual(expected, clean([])) self.assertFieldValidationError(OptionalChoiceField, 'subfield_required', clean, [True, None]) self.assertFieldValidationError(OptionalChoiceField, 'subfield_required', clean, [True])
def test_ok_choice(self): field = OptionalChoiceField(choices=enumerate(self._team, start=1)) self.assertEqual((True, '1'), field.clean([True, 1]))