python-benedict/tests/core/test_merge.py

119 lines
2.4 KiB
Python

# -*- coding: utf-8 -*-
from benedict.core import merge as _merge
import unittest
class merge_test_case(unittest.TestCase):
def test_merge_with_flatten_dict(self):
d = {
'a': 1,
'b': 1,
}
m = {
'b': 2,
'c': 3,
}
_merge(d, m)
r = {
'a': 1,
'b': 2,
'c': 3,
}
self.assertEqual(d, r)
def test_merge_with_multiple_dicts(self):
d = {
'a': 1,
'b': 1,
}
a = {
'b': 2,
'c': 3,
'd': 3,
}
b = {
'd': 5,
'e': 5,
}
c = {
'd': 4,
'f': 6,
}
_merge(d, a, b, c)
r = {
'a': 1,
'b': 2,
'c': 3,
'd': 4,
'e': 5,
'f': 6,
}
self.assertEqual(d, r)
def test_merge_with_nested_dict(self):
d = {
'a': 1,
'b': {
'c': {
'x': 2,
'y': 3,
},
'd': {
'x': 4,
'y': 5,
},
'e': {
'x': 6,
'y': 7,
},
},
}
m = {
'a': 0,
'b': {
'c': 1,
'd': {
'y': 1,
'z': 2,
},
'e': {
'f': {
'x': 2,
'y': 3,
},
'g': {
'x': 4,
'y': 5,
},
},
},
}
_merge(d, m)
r = {
'a': 0,
'b': {
'c': 1,
'd': {
'x': 4,
'y': 1,
'z': 2,
},
'e': {
'f': {
'x': 2,
'y': 3,
},
'g': {
'x': 4,
'y': 5,
},
'x': 6,
'y': 7,
},
},
}
self.assertEqual(d, r)