From 0e58dc7a86eceb04546099f6d9b5a0fefdb26e35 Mon Sep 17 00:00:00 2001 From: John Lancaster <32917998+jsl12@users.noreply.github.com> Date: Sun, 22 Feb 2026 18:25:26 -0600 Subject: [PATCH] event fixes --- src/hooked_containers/mapping.py | 6 +++--- tests/test_mapping.py | 11 ++++++++++- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/hooked_containers/mapping.py b/src/hooked_containers/mapping.py index dc669c6..e19ce6b 100644 --- a/src/hooked_containers/mapping.py +++ b/src/hooked_containers/mapping.py @@ -35,7 +35,7 @@ class HookedMapping(HookedContainer[T], MutableMapping[T, MutableNesting[T]]): def insert(self, key: T, value: MutableNesting[T]) -> None: self._data[key] = value if self.hook: - self.hook(e.AddItemEvent(value, path=self.new_path(key))) + self.hook(e.AddItemEvent(self.new_path(key), value)) # HookedContainer methods @@ -58,10 +58,10 @@ class HookedMapping(HookedContainer[T], MutableMapping[T, MutableNesting[T]]): else: self._data[key] = value if self.hook: - self.hook(e.SetItemEvent(value, path=self.new_path(key))) + self.hook(e.SetItemEvent(self.new_path(key), value)) def __delitem__(self, key: T) -> None: item = self._data[key] del self._data[key] if self.hook: - self.hook(e.RemoveItemEvent(item, path=self.new_path(key))) + self.hook(e.RemoveItemEvent(self.new_path(key), item)) diff --git a/tests/test_mapping.py b/tests/test_mapping.py index e05b798..08f66fe 100644 --- a/tests/test_mapping.py +++ b/tests/test_mapping.py @@ -24,9 +24,18 @@ class TestHookedMapping: class TestMappingOps: def test_setitem(self): - m = HookedMapping({}) + added = [] + m = HookedMapping({}, lambda e: added.append(e.item)) m["a"] = 1 assert m._data == {"a": 1} + assert added == [1] + + def test_nested_setitem(self): + added = [] + m = HookedMapping({"a": {}}, lambda e: added.append(e.item)) + m["a"]["x"] = 1 + assert m._data == {"a": {"x": 1}} + assert added == [1] def test_getitem(self): m = HookedMapping({"a": 1})