예제 #1
0
    def test_merge_with_list_merging(self):
        """
        Test deep merging of dicts with merge_lists enabled.
        """

        src_dict = {
            "string_key": "string_val_src",
            "list_key": ["list_val_src"],
            "dict_key": {
                "dict_key_src": "dict_val_src"
            },
        }

        dest_dict = {
            "string_key": "string_val_dest",
            "list_key": ["list_val_dest"],
            "dict_key": {
                "dict_key_dest": "dict_val_dest"
            },
        }

        merged_dict = {
            "string_key": "string_val_src",
            "list_key": ["list_val_dest", "list_val_src"],
            "dict_key": {
                "dict_key_dest": "dict_val_dest",
                "dict_key_src": "dict_val_src",
            },
        }

        defaults.merge(dest_dict, src_dict, merge_lists=True)
        self.assertEqual(dest_dict, merged_dict)
예제 #2
0
    def test_merge_without_list_merging(self):
        """
        Test deep merging of dicts with merge_lists disabled.
        """

        src = {
            "string_key": "string_val_src",
            "list_key": ["list_val_src"],
            "dict_key": {
                "dict_key_src": "dict_val_src"
            },
        }

        dest = {
            "string_key": "string_val_dest",
            "list_key": ["list_val_dest"],
            "dict_key": {
                "dict_key_dest": "dict_val_dest"
            },
        }

        merged = {
            "string_key": "string_val_src",
            "list_key": ["list_val_src"],
            "dict_key": {
                "dict_key_dest": "dict_val_dest",
                "dict_key_src": "dict_val_src",
            },
        }

        defaults.merge(dest, src, merge_lists=False)
        self.assertEqual(dest, merged)
예제 #3
0
def test_merge_dest_is_none():
    """
    Test deep merging of dicts not in place.
    """

    src = {"nested_dict": {"B": "B"}}

    src_orig = {"nested_dict": {"B": "B"}}

    final = defaults.merge(None, src, in_place=False)
    assert src == src_orig
    assert final == src_orig
예제 #4
0
def test_merge_src_is_none():
    """
    Test deep merging of dicts not in place.
    """

    dest = {"nested_dict": {"B": "B"}}

    dest_orig = {"nested_dict": {"B": "B"}}

    final = defaults.merge(dest, None, in_place=False)
    assert dest == dest_orig
    assert final == dest_orig
예제 #5
0
    def test_merge_without_list_merging(self):
        '''
        Test deep merging of dicts with merge_lists disabled.
        '''

        src = {
            'string_key': 'string_val_src',
            'list_key': [
                'list_val_src',
            ],
            'dict_key': {
                'dict_key_src': 'dict_val_src',
            }
        }

        dest = {
            'string_key': 'string_val_dest',
            'list_key': [
                'list_val_dest',
            ],
            'dict_key': {
                'dict_key_dest': 'dict_val_dest',
            }
        }

        merged = {
            'string_key': 'string_val_src',
            'list_key': ['list_val_src'],
            'dict_key': {
                'dict_key_dest': 'dict_val_dest',
                'dict_key_src': 'dict_val_src'
            }
        }

        defaults.merge(dest, src, merge_lists=False)
        self.assertEqual(dest, merged)
예제 #6
0
    def test_merge_with_list_merging(self):
        '''
        Test deep merging of dicts with merge_lists enabled.
        '''

        src_dict = {
            'string_key': 'string_val_src',
            'list_key': [
                'list_val_src',
            ],
            'dict_key': {
                'dict_key_src': 'dict_val_src',
            }
        }

        dest_dict = {
            'string_key': 'string_val_dest',
            'list_key': [
                'list_val_dest',
            ],
            'dict_key': {
                'dict_key_dest': 'dict_val_dest',
            }
        }

        merged_dict = {
            'string_key': 'string_val_src',
            'list_key': ['list_val_dest', 'list_val_src'],
            'dict_key': {
                'dict_key_dest': 'dict_val_dest',
                'dict_key_src': 'dict_val_src'
            }
        }

        defaults.merge(dest_dict, src_dict, merge_lists=True)
        self.assertEqual(dest_dict, merged_dict)
예제 #7
0
    def test_merge_not_in_place(self):
        """
        Test deep merging of dicts not in place.
        """

        src = {"nested_dict": {"A": "A"}}

        dest = {"nested_dict": {"B": "B"}}

        dest_orig = {"nested_dict": {"B": "B"}}

        merged = {"nested_dict": {"A": "A", "B": "B"}}

        final = defaults.merge(dest, src, in_place=False)
        self.assertEqual(dest, dest_orig)
        self.assertEqual(final, merged)
예제 #8
0
    def test_merge_not_in_place(self):
        '''
        Test deep merging of dicts not in place.
        '''

        src = {'nested_dict': {'A': 'A'}}

        dest = {'nested_dict': {'B': 'B'}}

        dest_orig = {'nested_dict': {'B': 'B'}}

        merged = {'nested_dict': {'A': 'A', 'B': 'B'}}

        final = defaults.merge(dest, src, in_place=False)
        self.assertEqual(dest, dest_orig)
        self.assertEqual(final, merged)
예제 #9
0
def test_merge_not_in_place():
    """
    Test deep merging of dicts not in place.
    """

    src = {"nested_dict": {"A": "A"}}

    dest = {"nested_dict": {"B": "B"}}

    dest_orig = {"nested_dict": {"B": "B"}}

    merged = {"nested_dict": {"A": "A", "B": "B"}}

    final = defaults.merge(dest, src, in_place=False)
    assert dest == dest_orig
    assert final == merged