From 42cd1d726fadaf0e1995013511a5e557d5e9747d Mon Sep 17 00:00:00 2001 From: Thomas Steinacher Date: Fri, 28 Sep 2012 18:30:30 -0700 Subject: [PATCH] MonngoEmbedded --- cleancat/base.py | 10 +++++++++- tests/__init__.py | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/cleancat/base.py b/cleancat/base.py index 6c8c723..124eb8c 100644 --- a/cleancat/base.py +++ b/cleancat/base.py @@ -106,7 +106,6 @@ def has_value(self, value): def clean(self, value): value = super(Embedded, self).clean(value) - return self.schema_class(value).full_clean() def is_valid(self): @@ -135,6 +134,15 @@ def clean(self, value): return value # TODO move to separate module +class MongoEmbedded(Embedded): + def __init__(self, document_class=None, *args, **kwargs): + self.document_class = document_class + super(MongoEmbedded, self).__init__(*args, **kwargs) + + def clean(self, value): + value = super(MongoEmbedded, self).clean(value) + return self.document_class(**value) + class MongoReference(Field): base_type = basestring diff --git a/tests/__init__.py b/tests/__init__.py index 17f05a5..5a210e0 100644 --- a/tests/__init__.py +++ b/tests/__init__.py @@ -136,7 +136,7 @@ class OptionalTagsSchema(Schema): self.assertValid(OptionalTagsSchema({}), {'tags': []}) - # TODO: Test Email, Embedded, Choices, MongoReference, more Schema tests. + # TODO: Test Embedded, Choices, MongoReference, more Schema tests. if __name__ == '__main__': unittest.main()