Renamed schema for errors
Now is `to_dict()` as is more explicit [refs #344 #328]
This commit is contained in:
parent
558b8123b5
commit
3ee60affa9
@ -52,23 +52,22 @@ class ValidationError(AssertionError):
|
|||||||
|
|
||||||
message = property(_get_message, _set_message)
|
message = property(_get_message, _set_message)
|
||||||
|
|
||||||
@property
|
def to_dict(self):
|
||||||
def schema(self):
|
def build_dict(source):
|
||||||
def get_schema(source):
|
|
||||||
errors_dict = {}
|
errors_dict = {}
|
||||||
if not source:
|
if not source:
|
||||||
return errors_dict
|
return errors_dict
|
||||||
if isinstance(source, dict):
|
if isinstance(source, dict):
|
||||||
for field_name, error in source.iteritems():
|
for field_name, error in source.iteritems():
|
||||||
errors_dict[field_name] = get_schema(error)
|
errors_dict[field_name] = build_dict(error)
|
||||||
elif isinstance(source, ValidationError) and source.errors:
|
elif isinstance(source, ValidationError) and source.errors:
|
||||||
return get_schema(source.errors)
|
return build_dict(source.errors)
|
||||||
else:
|
else:
|
||||||
return unicode(source)
|
return unicode(source)
|
||||||
return errors_dict
|
return errors_dict
|
||||||
if not self.errors:
|
if not self.errors:
|
||||||
return {}
|
return {}
|
||||||
return get_schema(self.errors)
|
return build_dict(self.errors)
|
||||||
|
|
||||||
|
|
||||||
_document_registry = {}
|
_document_registry = {}
|
||||||
|
@ -1642,7 +1642,7 @@ class FieldTest(unittest.TestCase):
|
|||||||
self.assertTrue(isinstance(person.like, Dish))
|
self.assertTrue(isinstance(person.like, Dish))
|
||||||
|
|
||||||
def test_recursive_validation(self):
|
def test_recursive_validation(self):
|
||||||
"""Ensure that a validation result schema is available.
|
"""Ensure that a validation result to_dict is available.
|
||||||
"""
|
"""
|
||||||
class Author(EmbeddedDocument):
|
class Author(EmbeddedDocument):
|
||||||
name = StringField(required=True)
|
name = StringField(required=True)
|
||||||
@ -1674,12 +1674,12 @@ class FieldTest(unittest.TestCase):
|
|||||||
ValidationError))
|
ValidationError))
|
||||||
|
|
||||||
# ValidationError.schema property
|
# ValidationError.schema property
|
||||||
schema = error.schema
|
error_dict = error.to_dict()
|
||||||
self.assertTrue(isinstance(schema, dict))
|
self.assertTrue(isinstance(error_dict, dict))
|
||||||
self.assertTrue('comments' in schema)
|
self.assertTrue('comments' in error_dict)
|
||||||
self.assertTrue(1 in schema['comments'])
|
self.assertTrue(1 in error_dict['comments'])
|
||||||
self.assertTrue('content' in schema['comments'][1])
|
self.assertTrue('content' in error_dict['comments'][1])
|
||||||
self.assertEquals(schema['comments'][1]['content'],
|
self.assertEquals(error_dict['comments'][1]['content'],
|
||||||
u'Field is required ("content")')
|
u'Field is required ("content")')
|
||||||
|
|
||||||
post.comments[1].content = 'here we go'
|
post.comments[1].content = 'here we go'
|
||||||
@ -1688,25 +1688,25 @@ class FieldTest(unittest.TestCase):
|
|||||||
|
|
||||||
class ValidatorErrorTest(unittest.TestCase):
|
class ValidatorErrorTest(unittest.TestCase):
|
||||||
|
|
||||||
def test_schema(self):
|
def test_to_dict(self):
|
||||||
"""Ensure a ValidationError handles error schema correctly.
|
"""Ensure a ValidationError handles error to_dict correctly.
|
||||||
"""
|
"""
|
||||||
error = ValidationError('root')
|
error = ValidationError('root')
|
||||||
self.assertEquals(error.schema, {})
|
self.assertEquals(error.to_dict(), {})
|
||||||
|
|
||||||
# 1st level error schema
|
# 1st level error schema
|
||||||
error.errors = {'1st': ValidationError('bad 1st'), }
|
error.errors = {'1st': ValidationError('bad 1st'), }
|
||||||
self.assertTrue('1st' in error.schema)
|
self.assertTrue('1st' in error.to_dict())
|
||||||
self.assertEquals(error.schema['1st'], 'bad 1st')
|
self.assertEquals(error.to_dict()['1st'], 'bad 1st')
|
||||||
|
|
||||||
# 2nd level error schema
|
# 2nd level error schema
|
||||||
error.errors = {'1st': ValidationError('bad 1st', errors={
|
error.errors = {'1st': ValidationError('bad 1st', errors={
|
||||||
'2nd': ValidationError('bad 2nd'),
|
'2nd': ValidationError('bad 2nd'),
|
||||||
})}
|
})}
|
||||||
self.assertTrue('1st' in error.schema)
|
self.assertTrue('1st' in error.to_dict())
|
||||||
self.assertTrue(isinstance(error.schema['1st'], dict))
|
self.assertTrue(isinstance(error.to_dict()['1st'], dict))
|
||||||
self.assertTrue('2nd' in error.schema['1st'])
|
self.assertTrue('2nd' in error.to_dict()['1st'])
|
||||||
self.assertEquals(error.schema['1st']['2nd'], 'bad 2nd')
|
self.assertEquals(error.to_dict()['1st']['2nd'], 'bad 2nd')
|
||||||
|
|
||||||
# moar levels
|
# moar levels
|
||||||
error.errors = {'1st': ValidationError('bad 1st', errors={
|
error.errors = {'1st': ValidationError('bad 1st', errors={
|
||||||
@ -1716,11 +1716,11 @@ class ValidatorErrorTest(unittest.TestCase):
|
|||||||
}),
|
}),
|
||||||
}),
|
}),
|
||||||
})}
|
})}
|
||||||
self.assertTrue('1st' in error.schema)
|
self.assertTrue('1st' in error.to_dict())
|
||||||
self.assertTrue('2nd' in error.schema['1st'])
|
self.assertTrue('2nd' in error.to_dict()['1st'])
|
||||||
self.assertTrue('3rd' in error.schema['1st']['2nd'])
|
self.assertTrue('3rd' in error.to_dict()['1st']['2nd'])
|
||||||
self.assertTrue('4th' in error.schema['1st']['2nd']['3rd'])
|
self.assertTrue('4th' in error.to_dict()['1st']['2nd']['3rd'])
|
||||||
self.assertEquals(error.schema['1st']['2nd']['3rd']['4th'],
|
self.assertEquals(error.to_dict()['1st']['2nd']['3rd']['4th'],
|
||||||
'Inception')
|
'Inception')
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user