From 3ee60affa940a59b867a5d2e47811d2ec93c8202 Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Tue, 1 Nov 2011 01:51:58 -0700 Subject: [PATCH] Renamed schema for errors Now is `to_dict()` as is more explicit [refs #344 #328] --- mongoengine/base.py | 11 +++++------ tests/fields.py | 42 +++++++++++++++++++++--------------------- 2 files changed, 26 insertions(+), 27 deletions(-) diff --git a/mongoengine/base.py b/mongoengine/base.py index 8eaa05b1..f22374ba 100644 --- a/mongoengine/base.py +++ b/mongoengine/base.py @@ -52,23 +52,22 @@ class ValidationError(AssertionError): message = property(_get_message, _set_message) - @property - def schema(self): - def get_schema(source): + def to_dict(self): + def build_dict(source): errors_dict = {} if not source: return errors_dict if isinstance(source, dict): 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: - return get_schema(source.errors) + return build_dict(source.errors) else: return unicode(source) return errors_dict if not self.errors: return {} - return get_schema(self.errors) + return build_dict(self.errors) _document_registry = {} diff --git a/tests/fields.py b/tests/fields.py index 6920648d..dd68cb55 100644 --- a/tests/fields.py +++ b/tests/fields.py @@ -1642,7 +1642,7 @@ class FieldTest(unittest.TestCase): self.assertTrue(isinstance(person.like, Dish)) 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): name = StringField(required=True) @@ -1674,12 +1674,12 @@ class FieldTest(unittest.TestCase): ValidationError)) # ValidationError.schema property - schema = error.schema - self.assertTrue(isinstance(schema, dict)) - self.assertTrue('comments' in schema) - self.assertTrue(1 in schema['comments']) - self.assertTrue('content' in schema['comments'][1]) - self.assertEquals(schema['comments'][1]['content'], + error_dict = error.to_dict() + self.assertTrue(isinstance(error_dict, dict)) + self.assertTrue('comments' in error_dict) + self.assertTrue(1 in error_dict['comments']) + self.assertTrue('content' in error_dict['comments'][1]) + self.assertEquals(error_dict['comments'][1]['content'], u'Field is required ("content")') post.comments[1].content = 'here we go' @@ -1688,25 +1688,25 @@ class FieldTest(unittest.TestCase): class ValidatorErrorTest(unittest.TestCase): - def test_schema(self): - """Ensure a ValidationError handles error schema correctly. + def test_to_dict(self): + """Ensure a ValidationError handles error to_dict correctly. """ error = ValidationError('root') - self.assertEquals(error.schema, {}) + self.assertEquals(error.to_dict(), {}) # 1st level error schema error.errors = {'1st': ValidationError('bad 1st'), } - self.assertTrue('1st' in error.schema) - self.assertEquals(error.schema['1st'], 'bad 1st') + self.assertTrue('1st' in error.to_dict()) + self.assertEquals(error.to_dict()['1st'], 'bad 1st') # 2nd level error schema error.errors = {'1st': ValidationError('bad 1st', errors={ '2nd': ValidationError('bad 2nd'), })} - self.assertTrue('1st' in error.schema) - self.assertTrue(isinstance(error.schema['1st'], dict)) - self.assertTrue('2nd' in error.schema['1st']) - self.assertEquals(error.schema['1st']['2nd'], 'bad 2nd') + self.assertTrue('1st' in error.to_dict()) + self.assertTrue(isinstance(error.to_dict()['1st'], dict)) + self.assertTrue('2nd' in error.to_dict()['1st']) + self.assertEquals(error.to_dict()['1st']['2nd'], 'bad 2nd') # moar levels error.errors = {'1st': ValidationError('bad 1st', errors={ @@ -1716,11 +1716,11 @@ class ValidatorErrorTest(unittest.TestCase): }), }), })} - self.assertTrue('1st' in error.schema) - self.assertTrue('2nd' in error.schema['1st']) - self.assertTrue('3rd' in error.schema['1st']['2nd']) - self.assertTrue('4th' in error.schema['1st']['2nd']['3rd']) - self.assertEquals(error.schema['1st']['2nd']['3rd']['4th'], + self.assertTrue('1st' in error.to_dict()) + self.assertTrue('2nd' in error.to_dict()['1st']) + self.assertTrue('3rd' in error.to_dict()['1st']['2nd']) + self.assertTrue('4th' in error.to_dict()['1st']['2nd']['3rd']) + self.assertEquals(error.to_dict()['1st']['2nd']['3rd']['4th'], 'Inception')