From 7ef688b256907748981c92291a768451288f1d87 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bastien=20G=C3=A9rard?= Date: Sat, 2 Mar 2019 22:05:23 +0100 Subject: [PATCH] Added a test for push in DictField (relates to #1679) --- tests/fields/test_dict_field.py | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/tests/fields/test_dict_field.py b/tests/fields/test_dict_field.py index a3b8ec6c..ade02ccf 100644 --- a/tests/fields/test_dict_field.py +++ b/tests/fields/test_dict_field.py @@ -199,6 +199,26 @@ class TestDictField(MongoDBTestCase): self.assertEqual( Simple.objects.filter(mapping__nested_dict__list__1__value='Boo').count(), 1) + def test_push_dict(self): + class MyModel(Document): + events = ListField(DictField()) + + doc = MyModel(events=[{'a': 1}]).save() + raw_doc = get_as_pymongo(doc) + expected_raw_doc = { + '_id': doc.id, + 'events': [{'a': 1}] + } + self.assertEqual(raw_doc, expected_raw_doc) + + MyModel.objects(id=doc.id).update(push__events={}) + raw_doc = get_as_pymongo(doc) + expected_raw_doc = { + '_id': doc.id, + 'events': [{'a': 1}, {}] + } + self.assertEqual(raw_doc, expected_raw_doc) + def test_ensure_unique_default_instances(self): """Ensure that every field has it's own unique default instance.""" class D(Document):