Esempio n. 1
0
 def test_handles_non_dict_mappings(self):
     """Mapping types in general are supported"""
     from collections import OrderedDict, defaultdict
     first = OrderedDict(a=OrderedDict(a1=1), c={'c1': 1})
     second = defaultdict(None, a=dict(a2=2))
     update_deep(first, second)
     self.assertEqual(first, {'a': {'a1': 1, 'a2': 2}, 'c': {'c1': 1}})
Esempio n. 2
0
 def test_handles_non_dict_mappings(self):
     """Mapping types in general are supported"""
     from collections import OrderedDict, defaultdict
     first = OrderedDict(a=OrderedDict(a1=1), c={'c1': 1})
     second = defaultdict(None, a=dict(a2=2))
     update_deep(first, second)
     self.assertEqual(first, {'a': {'a1': 1, 'a2': 2}, 'c': {'c1': 1}})
Esempio n. 3
0
 def test_updates_recursively(self):
     first = {'a': {'a1': 1, 'aa': {}}, 'b': "B"}
     second = {'a': {'a2': 2, 'aa': {'aa1': 11}}}
     result = update_deep(first, second)
     self.assertEqual(first, {
         'a': {
             'a1': 1,
             'a2': 2,
             'aa': {
                 'aa1': 11
             }
         },
         'b': "B"
     })
     self.assertIsNone(
         result
     )  # modifies first in place; doesn't return it (same as dict.update())
Esempio n. 4
0
 def test_overwrites_sequences(self):
     """Only mappings are handled recursively; sequences are considered atomic"""
     first = {'a': [1, 2]}
     second = {'a': [3]}
     update_deep(first, second)
     self.assertEqual(first, {'a': [3]})
Esempio n. 5
0
 def test_overwrites_sequences(self):
     """Only mappings are handled recursively; sequences are considered atomic"""
     first = {'a': [1, 2]}
     second = {'a': [3]}
     update_deep(first, second)
     self.assertEqual(first, {'a': [3]})
Esempio n. 6
0
 def test_updates_recursively(self):
     first = {'a': {'a1': 1, 'aa': {}}, 'b': "B"}
     second = {'a': {'a2': 2, 'aa': {'aa1': 11}}}
     result = update_deep(first, second)
     self.assertEqual(first, {'a': {'a1': 1, 'a2': 2, 'aa': {'aa1': 11}}, 'b': "B"})
     self.assertIsNone(result)  # modifies first in place; doesn't return it (same as dict.update())