diff options
author | Guido Günther <agx@sigxcpu.org> | 2014-02-18 22:54:41 +0100 |
---|---|---|
committer | Guido Günther <agx@sigxcpu.org> | 2014-02-19 08:33:33 +0100 |
commit | f1bc54279b6f2a9b8848196044ba5312e2af9aaf (patch) | |
tree | bb4b86860addbfd5cea6908d224fa61d0ba97665 | |
parent | 1b0b17c7138617f8a77c4e66b1cc493549e5e0f8 (diff) |
config: Don't pull in config defaults twice
This would otherwise overwrite values set in the legacy config sections.
Closes: #733759
-rw-r--r-- | gbp/config.py | 9 | ||||
-rw-r--r-- | tests/test_Config.py | 2 |
2 files changed, 6 insertions, 5 deletions
diff --git a/gbp/config.py b/gbp/config.py index d4c0e5a..fa6e679 100644 --- a/gbp/config.py +++ b/gbp/config.py @@ -330,18 +330,19 @@ class GbpOptionParser(OptionParser): for prefix in ['gbp', 'git']: oldcmd = '%s-%s' % (prefix, self.command) if parser.has_section(oldcmd): - # Don't use items() until we got rid of the compat sections - # since this pulls in the defaults again - self.config.update(dict(parser._sections[cmd].items())) + self.config.update(dict(parser.items(oldcmd, raw=True))) cmd = self.command # Update with command specific settings if parser.has_section(cmd): self.config.update(dict(parser.items(cmd, raw=True))) + # Don't use items() until we got rid of the compat sections + # since this pulls in the defaults again + self.config.update(dict(parser._sections[cmd].items())) for section in self.sections: if parser.has_section(section): - self.config.update(dict(parser.items(section, raw=True))) + self.config.update(dict(parser._sections[section].items())) else: raise NoSectionError("Mandatory section [%s] does not exist." % section) diff --git a/tests/test_Config.py b/tests/test_Config.py index 9a68f8c..2bae765 100644 --- a/tests/test_Config.py +++ b/tests/test_Config.py @@ -72,7 +72,7 @@ def test_parser_fallback(): >>> confname = os.path.join(tmpdir, 'gbp.conf') >>> parser.config_files = [confname] >>> f = open(confname, 'w') - >>> f.write('[foo]\\nthere = is\\n[git-foo]\\nno = truth\\n') + >>> f.write('[DEFAULT]\\nthere = was\\n[foo]\\nthere = is\\n[git-foo]\\nno = truth\\n') >>> f.close() >>> parser._parse_config_files() >>> parser.config['there'] |