def test_merge_dictionary_basic(self): dest = {'foo': 1, 'blah': 99} src = {'bar': 2, 'blah': 20} merge_dictionary(dest, src) self.assertEqual(1, dest['foo']) self.assertEqual(2, dest['bar']) self.assertEqual(20, dest['blah']) self.assertEqual(sorted(['foo', 'bar', 'blah']), sorted(dest.keys()))
def test_merge_dictionary_deep(self): dest = {'foo': 1, 'bar': {'cats': 'dogs'}, 'deep': {'deeper': [1,2]}} src = {'blah': 2, 'bar': {'meow': 'woof'}, 'deep': {'deeper': [3,4]}} merge_dictionary(dest, src, merge_list_keys=['deeper']) self.assertEqual(1, dest['foo']) self.assertEqual(2, dest['blah']) self.assertEqual(sorted(['foo', 'bar', 'blah', 'deep']), sorted(dest.keys())) self.assertEqual({'cats': 'dogs', 'meow': 'woof'}, dest['bar']) self.assertEqual({'deeper': [1,2,3,4]}, dest['deep'])
def load(self, path): data = file_to_context(path) merge_dictionary(self.output, data, merge_list_keys=['run_list'])
def merge(self, resource): merge_dictionary(self.output, resource.output, merge_list_keys=['run_list'])
def test_merge_dictionary_append(self): dest = {'foo': [1]} src = {'foo': [2]} merge_dictionary(dest, src, merge_list_keys=['foo']) self.assertEqual(sorted([1,2]), sorted(dest['foo']))
def test_merge_dictionary_invalid_append(self): dest = {'foo': [1]} src = {'foo': 2} with self.assertRaises(TypeError) as e: merge_dictionary(dest, src, merge_list_keys=['foo'])