def test__validate_w_value_providing_schema_but_invalid_fields(self):
from zope.interface import implementer
from guillotina.schema.exceptions import WrongContainedType
from guillotina.schema.exceptions import RequiredMissing
from guillotina.schema.exceptions import WrongType
from guillotina.schema._bootstrapfields import Text
schema = self._makeSchema(foo=Text(), bar=Text())
@implementer(schema)
class Broken(object):
foo = None
bar = 1
objf = self._makeOne(schema)
self.assertRaises(WrongContainedType, objf.validate, Broken())
errors = self._getErrors(objf.validate, Broken())
self.assertEqual(len(errors), 2)
errors = sorted(errors, key=lambda x: type(x).__name__)
err = errors[0]
self.assertTrue(isinstance(err, RequiredMissing))
self.assertEqual(err.args, ('foo',))
err = errors[1]
self.assertTrue(isinstance(err, WrongType))
self.assertEqual(err.args, (1, str, 'bar'))
评论列表
文章目录