# Path: confab/merge.py
# def merge(*args):
#     """
#     Recursively merge multiple dictionaries.
#     """
#     return reduce(_merge, args, {})
# 
# def append(*args):
#     return Append(*args)
# 
# def prepend(*args):
#     return Prepend(*args)


from confab.merge import merge, append, prepend
from unittest import TestCase
            'foo': 'bar'
        }

        merged = merge(default)

        self.assertEquals(merged, default)

    def test_override(self):
        """
        Overrides work as expected.
        """

        default = {
            'value1': 'foo',
            'list': ['foo'],
            'dict': {
                'value2': 'foo',
                'value3': 'foo'
            },
        }

        override = {
            'value1': 'bar',
            'list': ['bar'],
            'dict': {
                'value2': 'bar',
                'value4': 'bar'
            },
        }


# Path: confab/merge.py
# def merge(*args):
#     """
#     Recursively merge multiple dictionaries.
#     """
#     return reduce(_merge, args, {})
# 
# def append(*args):
#     return Append(*args)
# 
# def prepend(*args):
#     return Prepend(*args)


# Path: confab/tests/test_merge.py
from confab.merge import merge, append, prepend
from unittest import TestCase

            'foo': 'bar'
        }

        merged = merge(default)

        self.assertEquals(merged, default)

    def test_override(self):
        """
        Overrides work as expected.
        """

        default = {
            'value1': 'foo',
            'list': ['foo'],
            'dict': {
                'value2': 'foo',
                'value3': 'foo'
            },
        }

        override = {
            'value1': 'bar',
            'list': ['bar'],
            'dict': {
                'value2': 'bar',
                'value4': 'bar'
            },
        }


        merged = merge(default, override)