Merge "fixes how os-apply-config handles invalid json"
This commit is contained in:
commit
81baf73ae8
|
@ -58,7 +58,7 @@ def merge_configs(parsed_configs):
|
||||||
'''Returns deep-merged dict from passed list of dicts.'''
|
'''Returns deep-merged dict from passed list of dicts.'''
|
||||||
final_conf = {}
|
final_conf = {}
|
||||||
for conf in parsed_configs:
|
for conf in parsed_configs:
|
||||||
if conf:
|
if conf and isinstance(conf, dict):
|
||||||
final_conf = _deep_merge_dict(final_conf, conf)
|
final_conf = _deep_merge_dict(final_conf, conf)
|
||||||
return final_conf
|
return final_conf
|
||||||
|
|
||||||
|
|
|
@ -109,6 +109,11 @@ class TestMergeConfigs(testtools.TestCase):
|
||||||
result = collect_config.merge_configs(type_conflict)
|
result = collect_config.merge_configs(type_conflict)
|
||||||
self.assertEqual({'a': [7, 8, 9]}, result)
|
self.assertEqual({'a': [7, 8, 9]}, result)
|
||||||
|
|
||||||
|
def test_merge_configs_nested_type_conflict(self):
|
||||||
|
type_conflict = [{'a': {'foo': 'bar'}}, {'a': 'shazam'}]
|
||||||
|
result = collect_config.merge_configs(type_conflict)
|
||||||
|
self.assertEqual({'a': 'shazam'}, result)
|
||||||
|
|
||||||
def test_merge_configs_list_conflict(self):
|
def test_merge_configs_list_conflict(self):
|
||||||
list_conflict = [{'a': [1, 2, 3]},
|
list_conflict = [{'a': [1, 2, 3]},
|
||||||
{'a': [4, 5, 6]}]
|
{'a': [4, 5, 6]}]
|
||||||
|
@ -116,6 +121,7 @@ class TestMergeConfigs(testtools.TestCase):
|
||||||
self.assertEqual({'a': [4, 5, 6]}, result)
|
self.assertEqual({'a': [4, 5, 6]}, result)
|
||||||
|
|
||||||
def test_merge_configs_empty_notdict(self):
|
def test_merge_configs_empty_notdict(self):
|
||||||
list_conflict = [[], {'a': '1'}, '', None, {'b': '2'}, {}]
|
list_conflict = [[], {'a': '1'}, '', None, 'tacocat',
|
||||||
|
{'b': '2'}, {}, 'baseball']
|
||||||
result = collect_config.merge_configs(list_conflict)
|
result = collect_config.merge_configs(list_conflict)
|
||||||
self.assertEqual({'a': '1', 'b': '2'}, result)
|
self.assertEqual({'a': '1', 'b': '2'}, result)
|
||||||
|
|
Loading…
Reference in New Issue