def test_original_local_conf_unchanged():
    global_conf = get_global_conf('read_only_empty_module')
    local_conf = get_local_conf()

    local_conf_copy = local_conf.copy()

    resolve_local_conf_options(global_conf, local_conf)

    eq_(local_conf_copy, local_conf)
    def test_debug_in_global_conf(self):
        """Django's "DEBUG" must be set to Paster's "debug"."""
        global_conf = get_global_conf('read_only_empty_module', debug=True)
        local_conf = get_local_conf()
        local_conf_resolved = \
            resolve_local_conf_options(global_conf, local_conf)

        assert_in('DEBUG', local_conf_resolved)
        eq_(local_conf_resolved['DEBUG'], True)
def test__file__is_ignored():
    """The __file__ argument must be renamed to paste_configuration_file."""
    global_conf = get_global_conf('read_only_empty_module', __file__='conf.ini')
    local_conf = get_local_conf()

    local_conf_resolved = resolve_local_conf_options(global_conf, local_conf)

    assert_in('paste_configuration_file', local_conf_resolved)
    eq_(local_conf_resolved['paste_configuration_file'], 'conf.ini')
    def get_config_variables_from_app_config(app_config):
        variables = resolve_local_conf_options(
            app_config.global_conf,
            app_config.local_conf,
            )

        variables_with_str_values = {}
        for variable_name, variable_value in variables.items():
            variables_with_str_values[variable_name] = str(variable_value)

        return variables_with_str_values
    def test_no_substitution(self):
        global_conf = get_global_conf('read_only_empty_module')

        option_name = 'SETTING1'
        option_value = 'value'
        local_conf = get_local_conf(**{option_name: option_value})

        local_conf_resolved = \
            resolve_local_conf_options(global_conf, local_conf)

        eq_(option_value, local_conf_resolved[option_name])
    def test_escaping(self):
        global_conf = get_global_conf('read_only_empty_module')

        local_conf = get_local_conf()
        option_name = 'SETTING1'
        option_value = '"$${var}"'
        local_conf[option_name] = option_value

        local_conf_resolved = \
            resolve_local_conf_options(global_conf, local_conf)

        eq_('${var}', local_conf_resolved[option_name])
    def test_valid_json_values(self):
        global_conf = get_global_conf('read_only_empty_module')
        local_conf = get_local_conf(
            parameter1='value1',
            parameter2={'key': [1, 2]},
            )
        local_conf_resolved = \
            resolve_local_conf_options(global_conf, local_conf)

        assert_in('parameter1', local_conf_resolved)
        eq_(local_conf_resolved['parameter1'], 'value1')

        assert_in('parameter2', local_conf_resolved)
        eq_(local_conf_resolved['parameter2'], {'key': [1, 2]})
    def test_substitution_done_before_json_conversion(self):
        global_option_name = 'global_option_name'
        global_option_value = '1'
        global_conf = get_global_conf(
            'read_only_empty_module',
            **{global_option_name: global_option_value}
            )

        local_conf = get_local_conf()
        local_option_name = 'SETTING1'
        local_option_value = '${%s}' % global_option_name
        local_conf[local_option_name] = local_option_value

        local_conf_resolved = \
            resolve_local_conf_options(global_conf, local_conf)

        eq_(1, local_conf_resolved[local_option_name])
    def test_substituting_existing_global_option(self):
        global_option_name = 'global_option_name'
        global_option_value = 'global_option_value'
        global_conf = get_global_conf(
            'read_only_empty_module',
            **{global_option_name: global_option_value}
            )

        local_conf = get_local_conf()
        local_option_name = 'SETTING1'
        local_option_value = '"The value is ${%s}"' % global_option_name
        local_conf[local_option_name] = local_option_value

        local_conf_resolved = \
            resolve_local_conf_options(global_conf, local_conf)

        eq_(
            'The value is global_option_value',
            local_conf_resolved[local_option_name],
            )
    def test_existing_module(self):
        global_conf = get_global_conf('read_only_empty_module')
        local_conf = get_local_conf()

        resolve_local_conf_options(global_conf, local_conf)