Files
hooked-containers/tests/test_mapping.py
John Lancaster 0e58dc7a86 event fixes
2026-02-22 18:25:26 -06:00

48 lines
1.4 KiB
Python

from hooked_containers.mapping import HookedMapping
class TestHookedMapping:
class TestConstruction:
def test_empty(self):
m = HookedMapping({})
assert m._data == {}
assert dict(m) == {}
def test_with_existing(self):
existing = {"a": 1, "b": 2}
og_id = id(existing)
m = HookedMapping(existing)
assert id(m._data) == og_id
assert dict(m) == existing
def test_nesting(self):
existing = {"a": {"x": 1}, "b": {"y": 2}}
m = HookedMapping(existing)
assert dict(m) == existing
assert dict(m["a"]) == {"x": 1}
assert dict(m["b"]) == {"y": 2}
class TestMappingOps:
def test_setitem(self):
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})
assert m["a"] == 1
def test_delitem(self):
m = HookedMapping({"a": 1})
del m["a"]
assert not m["a"]