Skip to content

Commit fd796b6

Browse files
authored
Merge pull request #2858 from juannyG/master
Call mark_as_changed_wrapper for `list.clear` on ListField
2 parents 9aab9d2 + 1758d23 commit fd796b6

File tree

2 files changed

+7
-1
lines changed

2 files changed

+7
-1
lines changed

mongoengine/base/datastructures.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -177,6 +177,7 @@ def __setitem__(self, key, value):
177177
remove = mark_as_changed_wrapper(list.remove)
178178
reverse = mark_as_changed_wrapper(list.reverse)
179179
sort = mark_as_changed_wrapper(list.sort)
180+
clear = mark_as_changed_wrapper(list.clear)
180181
__delitem__ = mark_as_changed_wrapper(list.__delitem__)
181182
__iadd__ = mark_as_changed_wrapper(list.__iadd__)
182183
__imul__ = mark_as_changed_wrapper(list.__imul__)

tests/test_datastructures.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -185,7 +185,7 @@ def test___iter__(self):
185185
base_list = BaseList(values, instance=None, name="my_name")
186186
assert values == list(base_list)
187187

188-
def test___iter___allow_modification_while_iterating_withou_error(self):
188+
def test___iter___allow_modification_while_iterating_without_error(self):
189189
# regular list allows for this, thus this subclass must comply to that
190190
base_list = BaseList([True, False, True, False], instance=None, name="my_name")
191191
for idx, val in enumerate(base_list):
@@ -365,6 +365,11 @@ def test_sort_calls_with_key(self):
365365
base_list.sort(key=lambda i: str(i))
366366
assert base_list == [1, 11, 2]
367367

368+
def test_clear_calls_mark_as_changed(self):
369+
base_list = self._get_baselist([True, False])
370+
base_list.clear()
371+
assert base_list._instance._changed_fields == ["my_name"]
372+
368373

369374
class TestStrictDict(unittest.TestCase):
370375
def setUp(self):

0 commit comments

Comments
 (0)