def test_override_properties(): document = { "foo": "bar", "spam": "eggs", "one": "two", "array": ["first", "second"], } override_properties( document, {("foo",): "baz", ("spam",): {}, ("not_found",): None, ("array", "1"): "last"}, ) assert document == { "foo": "baz", "spam": {}, "one": "two", "array": ["first", "last"], }
def override_target_properties(document, overrides): overridden = dict(document) for key, value in document.items(): overridden[key] = override_properties(value, overrides.get(key, {})) return overridden