def test_validate(self): _attrs = attrs.copy() _attrs['name'] = 2333 with self.assertRaises(ValidationError): _Dummy.create(**_attrs) _attrs['name'] = '999' _Dummy.create(**_attrs) _attrs['name'] = '9999' with self.assertRaises(ValidationError): _Dummy.create(**_attrs) old_validate = Dummy.olo_validate Dummy.olo_validate = Mock() Dummy.olo_validate.side_effect = ValidationError() with self.assertRaises(ValidationError): Dummy.create(name='test') self.assertEqual(Dummy.olo_validate.call_count, 1) Dummy.olo_validate = old_validate dummy = Dummy.create(name='test') self.assertIsNotNone(dummy) Dummy.olo_validate = Mock() Dummy.olo_validate.side_effect = ValidationError() with self.assertRaises(ValidationError): dummy.update(name='test1') self.assertEqual(Dummy.olo_validate.call_count, 1) Dummy.olo_validate = old_validate
def validate(self, value): if self.choices is None: return if value not in self.choices: raise ValidationError( '{} is not a valid choice of `{}`. The choices is: {}'.format( repr(value), self.name, repr(self.choices)))
def validate_name(cls, name): if name > 1000: raise ValidationError('%s more than 1000' % name)