diff options
author | Facundo Batista <facundobatista@gmail.com> | 2008-02-23 12:46:10 +0000 |
---|---|---|
committer | Facundo Batista <facundobatista@gmail.com> | 2008-02-23 12:46:10 +0000 |
commit | b12f0b581a6f268d0611c87012d1273aeca220b8 (patch) | |
tree | 15cd0ffb90086c018c9542aa516b988aff18bde1 | |
parent | 1660933d23ed99393c2ea9bbe0204318936e3bbc (diff) | |
download | cpython-git-b12f0b581a6f268d0611c87012d1273aeca220b8.tar.gz |
Issue 1781. Now ConfigParser.add_section does not let you add a
DEFAULT section any more, because it duplicated sections with
the rest of the machinery. Thanks Tim Lesher and Manuel Kaufmann.
-rw-r--r-- | Doc/library/configparser.rst | 5 | ||||
-rw-r--r-- | Lib/ConfigParser.py | 6 | ||||
-rw-r--r-- | Lib/test/test_cfgparser.py | 8 | ||||
-rw-r--r-- | Misc/NEWS | 3 |
4 files changed, 19 insertions, 3 deletions
diff --git a/Doc/library/configparser.rst b/Doc/library/configparser.rst index ec3b0220ba..96c001fc7d 100644 --- a/Doc/library/configparser.rst +++ b/Doc/library/configparser.rst @@ -187,8 +187,9 @@ RawConfigParser Objects .. method:: RawConfigParser.add_section(section) Add a section named *section* to the instance. If a section by the given name - already exists, :exc:`DuplicateSectionError` is raised. - + already exists, :exc:`DuplicateSectionError` is raised. If the name + ``DEFAULT`` (or any of it's case-insensitive variants) is passed, + :exc:`ValueError` is raised. .. method:: RawConfigParser.has_section(section) diff --git a/Lib/ConfigParser.py b/Lib/ConfigParser.py index 131d697467..65c6ae2ae3 100644 --- a/Lib/ConfigParser.py +++ b/Lib/ConfigParser.py @@ -235,8 +235,12 @@ class RawConfigParser: """Create a new section in the configuration. Raise DuplicateSectionError if a section by the specified name - already exists. + already exists. Raise ValueError if name is DEFAULT or any of it's + case-insensitive variants. """ + if section.lower() == "default": + raise ValueError, 'Invalid section name: %s' % section + if section in self._sections: raise DuplicateSectionError(section) self._sections[section] = self._dict() diff --git a/Lib/test/test_cfgparser.py b/Lib/test/test_cfgparser.py index c4df74185e..a8b5d7c389 100644 --- a/Lib/test/test_cfgparser.py +++ b/Lib/test/test_cfgparser.py @@ -446,6 +446,14 @@ class SafeConfigParserTestCase(ConfigParserTestCase): self.assertRaises(TypeError, cf.set, "sect", "option2", 1.0) self.assertRaises(TypeError, cf.set, "sect", "option2", object()) + def test_add_section_default_1(self): + cf = self.newconfig() + self.assertRaises(ValueError, cf.add_section, "default") + + def test_add_section_default_2(self): + cf = self.newconfig() + self.assertRaises(ValueError, cf.add_section, "DEFAULT") + class SortedTestCase(RawConfigParserTestCase): def newconfig(self, defaults=None): self.cf = self.config_class(defaults=defaults, dict_type=SortedDict) @@ -434,6 +434,9 @@ Core and builtins Library ------- +- Issue 1781: ConfigParser now does not let you add the "default" section + (ignore-case) + - Removed uses of dict.has_key() from distutils, and uses of callable() from copy_reg.py, so the interpreter now starts up without warnings when '-3' is given. More work like this needs to |