MCPcopy Index your code
hub / github.com/MongoEngine/mongoengine / delta

Method delta

tests/document/test_delta.py:33–78  ·  view source on GitHub ↗
(DocClass)

Source from the content-addressed store, hash-verified

31
32 @staticmethod
33 def delta(DocClass):
34 class Doc(DocClass):
35 string_field = StringField()
36 int_field = IntField()
37 dict_field = DictField()
38 list_field = ListField()
39
40 Doc.drop_collection()
41 doc = Doc()
42 doc.save()
43
44 doc = Doc.objects.first()
45 assert doc._get_changed_fields() == []
46 assert doc._delta() == ({}, {})
47
48 doc.string_field = "hello"
49 assert doc._get_changed_fields() == ["string_field"]
50 assert doc._delta() == ({"string_field": "hello"}, {})
51
52 doc._changed_fields = []
53 doc.int_field = 1
54 assert doc._get_changed_fields() == ["int_field"]
55 assert doc._delta() == ({"int_field": 1}, {})
56
57 doc._changed_fields = []
58 dict_value = {"hello": "world", "ping": "pong"}
59 doc.dict_field = dict_value
60 assert doc._get_changed_fields() == ["dict_field"]
61 assert doc._delta() == ({"dict_field": dict_value}, {})
62
63 doc._changed_fields = []
64 list_value = ["1", 2, {"hello": "world"}]
65 doc.list_field = list_value
66 assert doc._get_changed_fields() == ["list_field"]
67 assert doc._delta() == ({"list_field": list_value}, {})
68
69 # Test unsetting
70 doc._changed_fields = []
71 doc.dict_field = {}
72 assert doc._get_changed_fields() == ["dict_field"]
73 assert doc._delta() == ({}, {"dict_field": 1})
74
75 doc._changed_fields = []
76 doc.list_field = []
77 assert doc._get_changed_fields() == ["list_field"]
78 assert doc._delta() == ({}, {"list_field": 1})
79
80 def test_delta_recursive(self):
81 self.delta_recursive(Document, EmbeddedDocument)

Callers 1

test_deltaMethod · 0.95

Calls 6

drop_collectionMethod · 0.80
_get_changed_fieldsMethod · 0.80
_deltaMethod · 0.80
DocClass · 0.70
saveMethod · 0.45
firstMethod · 0.45

Tested by

no test coverage detected