From f00bed605841bc17fb04e188b0280c6cdb6c693c Mon Sep 17 00:00:00 2001 From: Ross Lawley Date: Mon, 13 Aug 2012 16:53:36 +0100 Subject: [PATCH] Updated test cases for dynamic docs --- tests/test_dynamic_document.py | 31 +++++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) diff --git a/tests/test_dynamic_document.py b/tests/test_dynamic_document.py index 866af7d3..23762a34 100644 --- a/tests/test_dynamic_document.py +++ b/tests/test_dynamic_document.py @@ -500,3 +500,34 @@ class DynamicDocTest(unittest.TestCase): self.assertTrue([('_types', 1), ('category', 1), ('date', -1)] in info) self.assertTrue([('_types', 1), ('date', -1)] in info) + + def test_dynamic_and_embedded(self): + """Ensure embedded documents play nicely""" + + class Address(EmbeddedDocument): + city = StringField() + + class Person(DynamicDocument): + name = StringField() + meta = {'allow_inheritance': True} + + Person.drop_collection() + + Person(name="Ross", address=Address(city="London")).save() + + person = Person.objects.first() + person.address.city = "Lundenne" + person.save() + + self.assertEqual(Person.objects.first().address.city, "Lundenne") + + person = Person.objects.first() + person.address = Address(city="Londinium") + person.save() + + self.assertEqual(Person.objects.first().address.city, "Londinium") + + person = Person.objects.first() + person.age = 35 + person.save() + self.assertEqual(Person.objects.first().age, 35)