Example #1
0
def test_merge_overlapped_objects_second_object_takes_priority():
    # Arrange
    nested_dict1 = {
        "level1prop1": 1,
        "level2": {
            "level2prop1": 2,
            "level3": {
                "level3prop1": 3,
            }
        }
    }

    nested_dict2 = {
        "level1prop1": 4,
        "level2": {
            "level2prop1": 5,
            "level3": {
                "level3prop2": 6,
            }
        }
    }

    dict_view1 = ObjectDictView(nested_dict1)
    dict_view2 = ObjectDictView(nested_dict2)

    # Act
    dict_view1.merge(dict_view2)

    # Assert
    assert dict_view1.level1prop1 == 4
    assert dict_view1.level2.level2prop1 == 5
    assert dict_view1.level2.level3.level3prop1 == 3
    assert dict_view1.level2.level3.level3prop2 == 6
Example #2
0
def test_merge_two_disjoint_objects_returns_a_union_object():
    # Arrange
    nested_dict1 = {
        "level1prop1": 1,
        "level2": {
            "level2prop1": 2,
            "level3": {
                "level3prop1": 3,
            }
        }
    }

    nested_dict2 = {
        "level1prop2": 4,
        "level2": {
            "level2prop2": 5,
            "level3": {
                "level3prop2": 6,
            }
        }
    }

    dict_view1 = ObjectDictView(nested_dict1)
    dict_view2 = ObjectDictView(nested_dict2)

    # Act
    dict_view1.merge(dict_view2)

    # Assert
    assert dict_view1.level1prop1 == 1
    assert dict_view1.level1prop2 == 4
    assert dict_view1.level2.level2prop1 == 2
    assert dict_view1.level2.level2prop2 == 5
    assert dict_view1.level2.level3.level3prop1 == 3
    assert dict_view1.level2.level3.level3prop2 == 6