aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorGuido Günther <agx@sigxcpu.org>2014-02-18 22:54:41 +0100
committerGuido Günther <agx@sigxcpu.org>2014-02-19 08:33:33 +0100
commitf1bc54279b6f2a9b8848196044ba5312e2af9aaf (patch)
treebb4b86860addbfd5cea6908d224fa61d0ba97665
parent1b0b17c7138617f8a77c4e66b1cc493549e5e0f8 (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.py9
-rw-r--r--tests/test_Config.py2
2 files changed, 6 insertions, 5 deletions
diff --git a/gbp/config.py b/gbp/config.py
index d4c0e5ad..fa6e6798 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 9a68f8cc..2bae7653 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']