Ejemplo n.º 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
Ejemplo n.º 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
Ejemplo n.º 3
0
def test_get_safe_when_passed_an_existing_key_returns_its_value():
    # Arrange
    nested_dict = {
        "level1prop1": 1,
        "level2": {
            "level2prop1": 2,
            "level3": {
                "level3prop1": 3,
            }
        }
    }
    dict_view = ObjectDictView(nested_dict)

    # Act
    value = dict_view.get_safe("level2/level3/level3prop1")

    # Assert
    assert value == 3
Ejemplo n.º 4
0
def test_get_safe_when_passed_a_nonexistent_key_returns_default_value():
    # Arrange
    nested_dict = {
        "level1prop1": 1,
        "level2": {
            "level2prop1": 2,
            "level3": {
                "level3prop1": 3,
            }
        }
    }
    dict_view = ObjectDictView(nested_dict)

    # Act
    value1 = dict_view.get_safe("level2/level3/level4/level4prop1")
    value2 = dict_view.get_safe("level2/level3/level4/level4prop1", default_value=42)

    # Assert
    assert value1 is None
    assert value2 == 42