Renamed schema for errors

Now is `to_dict()` as is more explicit
[refs #344 #328]
This commit is contained in:
Ross Lawley 2011-11-01 01:51:58 -07:00
parent 558b8123b5
commit 3ee60affa9
2 changed files with 26 additions and 27 deletions

View File

@ -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 = {}

View File

@ -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')