Exemple #1
0
    def test_single(self):
        d1 = {'one': 1}
        self.assertEquals({'one': 1},
                          deep_merge(d1))

        # but we always create a new object
        self.assertIsNot(d1, deep_merge(d1))
    def test_single(self):
        d1 = {'one': 1}
        self.assertEquals({'one': 1},
                          deep_merge(d1))

        # but we always create a new object
        self.assertIsNot(d1, deep_merge(d1))
Exemple #3
0
    def test_merge_empty_collision(self):
        d1 = {'one': None}
        d2 = {'one': 1}
        self.assertEquals({'one': 1}, deep_merge(d1, d2))

        # but last one doesn't win when the first is None
        self.assertEquals({'one': None}, deep_merge(d2, d1))
Exemple #4
0
    def test_merge_incompatible_types(self):
        d1 = {'one': 1}
        d2 = {'one': [1, 2, 3]}

        # No collisions between int and list?
        self.assertEquals({'one': [1, 2, 3]}, deep_merge(d1, d2))

        self.assertEquals({'one': 1}, deep_merge(d2, d1))
    def test_merge_empty_collision(self):
        d1 = {'one': None}
        d2 = {'one': 1}
        self.assertEquals({'one': 1},
                          deep_merge(d1, d2))

        # but last one doesn't win when the first is None
        self.assertEquals({'one': None},
                          deep_merge(d2, d1))
Exemple #6
0
    def test_merge_incompatible_sequences(self):
        d1 = {'one': (4, 5, 6)}
        d2 = {'one': [1, 2, 3]}

        # No collisions between int and list?
        with self.assertRaises(Exception):
            deep_merge(d1, d2)

        with self.assertRaises(Exception):
            deep_merge(d2, d1)
    def test_merge_incompatible_sequences(self):
        d1 = {'one': (4, 5, 6)}
        d2 = {'one': [1, 2, 3]}

        # No collisions between int and list?
        with self.assertRaises(Exception):
            deep_merge(d1, d2)

        with self.assertRaises(Exception):
            deep_merge(d2, d1)
    def test_merge_incompatible_types(self):
        d1 = {'one': 1}
        d2 = {'one': [1, 2, 3]}

        # No collisions between int and list?
        self.assertEquals({'one': [1, 2, 3]},
                          deep_merge(d1, d2))

        self.assertEquals({'one': 1},
                          deep_merge(d2, d1))
Exemple #9
0
    def test_merge_deep(self):
        d1 = {'one': {'inner': {'deep': (1, 2, 3)}}}
        d2 = {'one': {'inner': {'deep': (4, 5, 6)}}}

        # Still odd last-one-wins behavior
        self.assertEquals({'one': {'inner': {'deep': (4, 5, 6)}}},
                          deep_merge(d1, d2))
Exemple #10
0
    def test_merge_overlapping_dicts_of_dicts(self):
        d1 = {'one': {'inner': [1, 2, 3]}}
        d2 = {'one': {'inner': [4, 5, 6]}}

        # Still odd last-one-wins behavior
        self.assertEquals({'one': {'inner': [4, 5, 6]}},
                          deep_merge(d1, d2))
Exemple #11
0
    def test_list_merge(self):
        d1 = {'one': [1, 2, 3]}
        d2 = {'one': [4, 5, 6]}

        # Doesn't add them together, last one wins?!
        self.assertEquals({'one': [4, 5, 6]},
                          deep_merge(d1, d2))
Exemple #12
0
    def test_merge_with_extra(self):
        d1 = {'one': 1}
        d2 = {'one': 1, 'two': 2}

        # Last one still wins even with other keys
        self.assertEquals({'one': 1, 'two': 2},
                          deep_merge(d1, d2))
Exemple #13
0
    def test_conflicting_merge(self):
        d1 = {'one': 1}
        d2 = {'one': 2}

        # Last one wins
        self.assertEquals({'one': 2},
                          deep_merge(d1, d2))
Exemple #14
0
 def test_merge_lists_of_dicts(self):
     d1 = [{'one': 1}, {'two': 2}]
     d2 = [{'three': 3}, {'four': 4}]
     # Merged lists get returned as lists
     self.assertEquals([{'one': 1, 'three': 3},
                        {'four': 4, 'two': 2}],
                       deep_merge(d1, d2))
    def test_conflicting_merge(self):
        d1 = {'one': 1}
        d2 = {'one': 2}

        # Last one wins
        self.assertEquals({'one': 2},
                          deep_merge(d1, d2))
 def test_merge_lists_of_dicts(self):
     d1 = [{'one': 1}, {'two': 2}]
     d2 = [{'three': 3}, {'four': 4}]
     # Merged lists get returned as lists
     self.assertEquals([{'one': 1, 'three': 3},
                        {'four': 4, 'two': 2}],
                       deep_merge(d1, d2))
 def test_merge_tuples_of_dicts(self):
     d1 = ({'one': 1}, {'two': 2})
     d2 = ({'three': 3}, {'four': 4})
     # Merged tuples get returned as tuples
     self.assertEquals(({'one': 1, 'three': 3},
                        {'four': 4, 'two': 2}),
                       deep_merge(d1, d2))
    def test_list_merge(self):
        d1 = {'one': [1, 2, 3]}
        d2 = {'one': [4, 5, 6]}

        # Doesn't add them together, last one wins?!
        self.assertEquals({'one': [4, 5, 6]},
                          deep_merge(d1, d2))
    def test_merge_with_extra(self):
        d1 = {'one': 1}
        d2 = {'one': 1, 'two': 2}

        # Last one still wins even with other keys
        self.assertEquals({'one': 1, 'two': 2},
                          deep_merge(d1, d2))
Exemple #20
0
 def test_merge_tuples_of_dicts(self):
     d1 = ({'one': 1}, {'two': 2})
     d2 = ({'three': 3}, {'four': 4})
     # Merged tuples get returned as tuples
     self.assertEquals(({'one': 1, 'three': 3},
                        {'four': 4, 'two': 2}),
                       deep_merge(d1, d2))
    def test_merge_overlapping_dicts_of_dicts(self):
        d1 = {'one': {'inner': [1, 2, 3]}}
        d2 = {'one': {'inner': [4, 5, 6]}}

        # Still odd last-one-wins behavior
        self.assertEquals({'one': {'inner': [4, 5, 6]}},
                          deep_merge(d1, d2))
    def test_merge_deep(self):
        d1 = {'one': {'inner': {'deep': (1, 2, 3)}}}
        d2 = {'one': {'inner': {'deep': (4, 5, 6)}}}

        # Still odd last-one-wins behavior
        self.assertEquals({'one': {'inner': {'deep': (4, 5, 6)}}},
                          deep_merge(d1, d2))
    def test_merge_dicts_of_dicts(self):
        d1 = {'one': {'inner': [1, 2, 3]}}
        d2 = {'two': {'inner': [4, 5, 6]}}

        # Safely merges non-conflicting dicts
        self.assertEquals({'one': {'inner': [1, 2, 3]},
                           'two': {'inner': [4, 5, 6]}},
                          deep_merge(d1, d2))
Exemple #24
0
    def test_merge_dicts_of_dicts(self):
        d1 = {'one': {'inner': [1, 2, 3]}}
        d2 = {'two': {'inner': [4, 5, 6]}}

        # Safely merges non-conflicting dicts
        self.assertEquals({'one': {'inner': [1, 2, 3]},
                           'two': {'inner': [4, 5, 6]}},
                          deep_merge(d1, d2))
Exemple #25
0
    def test_merge_deep_with_extra_on_both(self):
        d1 = {'one': {'inner': {'deep': (1, 2, 3),
                                'deep_extra': 1},
                      'inner_extra': 7}}
        d2 = {'one': {'inner': {'deep': (4, 5, 6),
                                'deep_extra': 11}}}

        # not adding up 'deep_extra' this time around?
        self.assertEquals({'one': {'inner': {'deep': (4, 5, 6), 'deep_extra': 11}, 'inner_extra': 7}},
                          deep_merge(d1, d2))
Exemple #26
0
    def test_merge_deep_with_extra(self):
        d1 = {'one': {'inner': {'deep': (1, 2, 3),
                                'deep_extra': 1},
                      'inner_extra': 7}}
        d2 = {'one': {'inner': {'deep': (4, 5, 6)}}}

        self.assertEquals({'one': {'inner': {'deep': (4, 5, 6),
                                             'deep_extra': 1},
                                   'inner_extra': 7}},
                          deep_merge(d1, d2))
    def test_merge_deep_with_extra_on_both(self):
        d1 = {'one': {'inner': {'deep': (1, 2, 3),
                                'deep_extra': 1},
                      'inner_extra': 7}}
        d2 = {'one': {'inner': {'deep': (4, 5, 6),
                                'deep_extra': 11}}}

        # not adding up 'deep_extra' this time around?
        self.assertEquals({'one': {'inner': {'deep': (4, 5, 6), 'deep_extra': 11}, 'inner_extra': 7}},
                          deep_merge(d1, d2))
    def test_merge_deep_with_extra(self):
        d1 = {'one': {'inner': {'deep': (1, 2, 3),
                                'deep_extra': 1},
                      'inner_extra': 7}}
        d2 = {'one': {'inner': {'deep': (4, 5, 6)}}}

        self.assertEquals({'one': {'inner': {'deep': (4, 5, 6),
                                             'deep_extra': 1},
                                   'inner_extra': 7}},
                          deep_merge(d1, d2))
Exemple #29
0
 def test_merge_lists(self):
     d1 = [1, 2, 3]
     d2 = [4, 5, 6]
     self.assertEquals([4, 5, 6], deep_merge(d1, d2))
Exemple #30
0
    def test_merge_non_dict(self):

        with self.assertRaises(Exception):
            deep_merge({'one': 1}, 4)
Exemple #31
0
 def test_merge_empty(self):
     d1 = {'one': None}
     d2 = {'two': 2}
     self.assertEquals({'two': 2, 'one': None}, deep_merge(d1, d2))
    def test_merge_non_dict(self):

        with self.assertRaises(Exception):
            deep_merge({'one': 1}, 4)
Exemple #33
0
    def test_compatible_merge(self):
        d1 = {'one': 1}
        d2 = {'one': 1}

        self.assertEquals({'one': 1}, deep_merge(d1, d2))
    def test_compatible_merge(self):
        d1 = {'one': 1}
        d2 = {'one': 1}

        self.assertEquals({'one': 1},
                          deep_merge(d1, d2))
 def test_merge_lists(self):
     d1 = [1, 2, 3]
     d2 = [4, 5, 6]
     self.assertEquals([4, 5, 6], deep_merge(d1, d2))
 def test_merge_empty(self):
     d1 = {'one': None}
     d2 = {'two': 2}
     self.assertEquals({'two': 2, 'one': None},
                       deep_merge(d1, d2))
    def test_simple_merge(self):
        d1 = {'one': 1}
        d2 = {'two': 2}

        self.assertEquals({'one': 1, 'two': 2},
                          deep_merge(d1, d2))
Exemple #38
0
    def test_simple_merge(self):
        d1 = {'one': 1}
        d2 = {'two': 2}

        self.assertEquals({'one': 1, 'two': 2}, deep_merge(d1, d2))