From d7a2ccf5ac35007378b6960653159193138f7f24 Mon Sep 17 00:00:00 2001 From: amitlicht Date: Tue, 30 Jun 2015 15:03:06 +0300 Subject: [PATCH] Adding a test case for #1047. --- tests/fields/fields.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/tests/fields/fields.py b/tests/fields/fields.py index 011a54d4..a772de6d 100644 --- a/tests/fields/fields.py +++ b/tests/fields/fields.py @@ -1617,6 +1617,27 @@ class FieldTest(unittest.TestCase): 'parent': "50a234ea469ac1eda42d347d"}) mongoed = p1.to_mongo() self.assertTrue(isinstance(mongoed['parent'], ObjectId)) + + def test_cached_reference_field_get_and_save(self): + """ + Tests #1047: CachedReferenceField creates DBRefs on to_python, but can't save them on to_mongo + """ + class Animal(Document): + name = StringField() + tag = StringField() + + class Ocorrence(Document): + person = StringField() + animal = CachedReferenceField(Animal) + + Animal.drop_collection() + Ocorrence.drop_collection() + + Ocorrence(person="testte", + animal=Animal(name="Leopard", tag="heavy").save()).save() + p = Ocorrence.objects.get() + p.person = 'new_testte' + p.save() def test_cached_reference_fields(self): class Animal(Document):