예제 #1
0
def test_merge_dicts() -> None:
    dict1 = {
        'number_list': [1, 3, 5],
        'string': 'string',
        'dict': {
            'value_in_dict': True
        },
        'replace_value': 100
    }

    dict2 = {
        'number_list': [2, 10],
        'dict': {
            'another_value_in_dict': Decimal(10.0)
        },
        'replace_value': 200
    }

    result = merge_dicts(dict1, dict2)
    expected_result = {
        'number_list': [1, 3, 5, 2, 10],
        'string': 'string',
        'dict': {
            'value_in_dict': True,
            'another_value_in_dict': Decimal(10.0)
        },
        'replace_value': 200
    }
    assert result == expected_result
예제 #2
0
def test_merge_dicts() -> None:
    assert merge_dicts({}, {}) == {}
    assert merge_dicts({"a": 1}, {}) == {"a": 1}
    assert merge_dicts({}, {"b": 2}) == {"b": 2}
    assert merge_dicts({"a": 1}, {"b": 2}) == {"a": 1, "b": 2}

    dict1 = {"number_list": [1, 3, 5], "string": "string", "dict": {"value_in_dict": True}, "replace_value": 100}
    dict2 = {"number_list": [2, 10], "dict": {"another_value_in_dict": Decimal(10.0)}, "replace_value": 200}

    result = merge_dicts(dict1, dict2)
    expected_result = {
        "number_list": [1, 3, 5, 2, 10],
        "string": "string",
        "dict": {"value_in_dict": True, "another_value_in_dict": Decimal(10.0)},
        "replace_value": 200,
    }
    assert result == expected_result
예제 #3
0
    def setup_configuration(self, instance: Any) -> None:
        if not self.configuration:
            return
        for k, v in self.configuration.items():
            instance_value = getattr(instance, k, None)
            if not instance_value:
                setattr(instance, k, v)

            if isinstance(instance_value, list) and isinstance(v, list):
                setattr(instance, k, instance_value + v)
            elif isinstance(instance_value, dict) and isinstance(v, dict):
                setattr(instance, k, merge_dicts(instance_value, v))
            else:
                setattr(instance, k, v)