Example #1
0
    def test_merge_dicts_with_list_and_mismatched_type(self):
        """Testing merge_dicts with merging list into non-list"""
        dest = {
            'a': 100,
        }

        message = ('Cannot merge a list into a %s for key "a".' % int)

        with self.assertRaisesMessage(TypeError, message):
            merge_dicts(dest, {
                'a': [1, 2, 3],
            })
Example #2
0
    def test_merge_dicts_with_unmergeable_type(self):
        """Testing merge_dicts with unmergeable type"""
        dest = {
            'a': 100,
        }

        message = ('Key "a" was not an expected type (found %s) when merging '
                   'dictionaries.' % int)

        with self.assertRaisesMessage(TypeError, message):
            merge_dicts(dest, {
                'a': 200,
            })
Example #3
0
    def test_merge_dicts_with_dict_and_mismatched_type(self):
        """Testing merge_dicts with merging dictionary into non-dictionary"""
        dest = {
            'a': 100,
        }

        message = ('Cannot merge a dictionary into a %s for key "a".' % int)

        with self.assertRaisesMessage(TypeError, message):
            merge_dicts(dest, {
                'a': {
                    'b': 1,
                },
            })
Example #4
0
    def test_merge_dicts_with_empty_source(self):
        """Testing merge_dicts with empty source"""
        dest = {
            'a': True,
            'b': [1, 2, 3],
            'c': {
                'key1': 'value1',
                'key2': None,
            },
        }

        merge_dicts(dest, {})

        self.assertEqual(dest, {
            'a': True,
            'b': [1, 2, 3],
            'c': {
                'key1': 'value1',
                'key2': None,
            },
        })
Example #5
0
    def test_merge_dicts(self):
        """Testing merge_dicts with empty source"""
        dest = {
            'a': True,
            'b': [1, 2, 3],
            'c': {
                'key1': 'value1',
                'key2': {
                    'subkey1': ['foo', 'bar'],
                },
            },
        }

        merge_dicts(
            dest, {
                'foo': 'bar',
                'b': [4, 5, 6],
                'c': {
                    'key2': {
                        'subkey1': ['baz'],
                        'subkey2': True,
                    },
                    'key3': None,
                },
            })

        self.assertEqual(
            dest, {
                'a': True,
                'b': [1, 2, 3, 4, 5, 6],
                'c': {
                    'key1': 'value1',
                    'key2': {
                        'subkey1': ['foo', 'bar', 'baz'],
                        'subkey2': True,
                    },
                    'key3': None,
                },
                'foo': 'bar',
            })