Files
hooked-containers/tests/test_mapping.py
2026-02-22 18:02:22 -06:00

39 lines
1.1 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):
m = HookedMapping({})
m["a"] = 1
assert m._data == {"a": 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"]