event fixes
This commit is contained in:
@@ -35,7 +35,7 @@ class HookedMapping(HookedContainer[T], MutableMapping[T, MutableNesting[T]]):
|
|||||||
def insert(self, key: T, value: MutableNesting[T]) -> None:
|
def insert(self, key: T, value: MutableNesting[T]) -> None:
|
||||||
self._data[key] = value
|
self._data[key] = value
|
||||||
if self.hook:
|
if self.hook:
|
||||||
self.hook(e.AddItemEvent(value, path=self.new_path(key)))
|
self.hook(e.AddItemEvent(self.new_path(key), value))
|
||||||
|
|
||||||
# HookedContainer methods
|
# HookedContainer methods
|
||||||
|
|
||||||
@@ -58,10 +58,10 @@ class HookedMapping(HookedContainer[T], MutableMapping[T, MutableNesting[T]]):
|
|||||||
else:
|
else:
|
||||||
self._data[key] = value
|
self._data[key] = value
|
||||||
if self.hook:
|
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:
|
def __delitem__(self, key: T) -> None:
|
||||||
item = self._data[key]
|
item = self._data[key]
|
||||||
del self._data[key]
|
del self._data[key]
|
||||||
if self.hook:
|
if self.hook:
|
||||||
self.hook(e.RemoveItemEvent(item, path=self.new_path(key)))
|
self.hook(e.RemoveItemEvent(self.new_path(key), item))
|
||||||
|
|||||||
@@ -24,9 +24,18 @@ class TestHookedMapping:
|
|||||||
|
|
||||||
class TestMappingOps:
|
class TestMappingOps:
|
||||||
def test_setitem(self):
|
def test_setitem(self):
|
||||||
m = HookedMapping({})
|
added = []
|
||||||
|
m = HookedMapping({}, lambda e: added.append(e.item))
|
||||||
m["a"] = 1
|
m["a"] = 1
|
||||||
assert m._data == {"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):
|
def test_getitem(self):
|
||||||
m = HookedMapping({"a": 1})
|
m = HookedMapping({"a": 1})
|
||||||
|
|||||||
Reference in New Issue
Block a user