Dynamic fields are now validated on save

(MongoEngine/mongoengine#153) (MongoEngine/mongoengine#154)
This commit is contained in:
Ross Lawley
2012-12-19 12:32:06 +00:00
parent c528ac09d6
commit 9cc02d4dbe
5 changed files with 33 additions and 1 deletions

View File

@@ -122,6 +122,29 @@ class DynamicTest(unittest.TestCase):
self.assertEqual(1, self.Person.objects(misc__hello='world').count())
def test_complex_embedded_document_validation(self):
"""Ensure embedded dynamic documents may be validated"""
class Embedded(DynamicEmbeddedDocument):
content = URLField()
class Doc(DynamicDocument):
pass
Doc.drop_collection()
doc = Doc()
embedded_doc_1 = Embedded(content='http://mongoengine.org')
embedded_doc_1.validate()
embedded_doc_2 = Embedded(content='this is not a url')
with self.assertRaises(ValidationError):
embedded_doc_2.validate()
doc.embedded_field_1 = embedded_doc_1
doc.embedded_field_2 = embedded_doc_2
with self.assertRaises(ValidationError):
doc.validate()
def test_inheritance(self):
"""Ensure that dynamic document plays nice with inheritance"""
class Employee(self.Person):