def test_copy(): d1 = MinyDict({"a": 1, "b": 2, "r": {"t": 5}}) d2 = d1.copy() d3 = d1.deepcopy() assert d1 == d2 assert d1 == d3 d2.a = 2 assert d1.a == 1 d3.b = 4 assert d1.b == 2
def test_update(): d1 = MinyDict({"a": 1, "b": 2, "r": {"t": 5}}) d2 = d1.copy() u1 = MinyDict({"a": 3, "r": {"t": 4, "z": 7}}) u2 = MinyDict({"a": 3, "r": {"t": 4}}) t1 = MinyDict({"a": 3, "b": 2, "r": {"t": 4, "z": 7}}) t2 = MinyDict({"a": 3, "b": 2, "r": {"t": 4}}) assert d1.update(u1) == t1 with pytest.raises(KeyError): d2.update(u1, strict=True) assert d2.update(u2, strict=False) == t2 with pytest.raises(TypeError): d1.update({1: 2}, {3: 4})