def test_merge(): section0 = Section() section0["a"] = 10 section0["b"] = 20 section0["sub0"] = {"x0": 10, "y0": 20} section0["sub0"]["subsub"] = {"wa": 100, "wb": 200} section0["sub1"] = {"x1": 11, "y1": 21} section1 = Section() section1["a"] = 1010 section1["c"] = 1030 section1["sub0"] = {"x0": 1010, "z0": 1030} section1["sub0"]["subsub"] = {"wa": 1100, "wc": 1300} section1["sub2"] = {"x2": 1012, "y2": 1022, "z2": 1032} # print(section0['sub0']['subsub']) section0.merge(section1) # print(section0['sub0']['subsub']) dct = section0.as_dict(dict_class=dict) # print(dct['sub0']['subsub']) expected = { "a": 1010, "b": 20, "c": 1030, "sub0": {"x0": 1010, "y0": 20, "z0": 1030, "subsub": {"wa": 1100, "wb": 200, "wc": 1300}}, "sub1": {"x1": 11, "y1": 21}, "sub2": {"x2": 1012, "y2": 1022, "z2": 1032}, } # assert dct['sub0'] == expected['sub0'] # assert dct['sub0']['subsub'] == expected['sub0']['subsub'] assert dct == expected