[Python-checkins] r84444 - in python/branches/py3k: Lib/configparser.py Lib/test/test_cfgparser.py Misc/NEWS

fred.drake python-checkins at python.org
Fri Sep 3 06:22:36 CEST 2010


Author: fred.drake
Date: Fri Sep 3 06:22:36 2010
New Revision: 84444
Log:
fix output from RawConfigParser.write and ConfigParser.write for None
values (http://bugs.python.org/issue7005)
(merged r84443 from the release27-mmaint branch, with changes to reflect
changes in Python 3)
Modified:
 python/branches/py3k/Lib/configparser.py
 python/branches/py3k/Lib/test/test_cfgparser.py
 python/branches/py3k/Misc/NEWS
Modified: python/branches/py3k/Lib/configparser.py
==============================================================================
--- python/branches/py3k/Lib/configparser.py	(original)
+++ python/branches/py3k/Lib/configparser.py	Fri Sep 3 06:22:36 2010
@@ -637,7 +637,7 @@
 for key, value in section_items:
 if key == "__name__":
 continue
- if value is not None:
+ if (value is not None) or (self._optcre == self.OPTCRE):
 value = delimiter + str(value).replace('\n', '\n\t')
 else:
 value = ""
Modified: python/branches/py3k/Lib/test/test_cfgparser.py
==============================================================================
--- python/branches/py3k/Lib/test/test_cfgparser.py	(original)
+++ python/branches/py3k/Lib/test/test_cfgparser.py	Fri Sep 3 06:22:36 2010
@@ -755,6 +755,34 @@
 with self.assertRaises(UnicodeDecodeError):
 cf.read(tricky, encoding='ascii')
 
+
+class Issue7005TestCase(unittest.TestCase):
+ """Test output when None is set() as a value and allow_no_value == False.
+
+ http://bugs.python.org/issue7005
+
+ """
+
+ expected_output = "[section]\noption = None\n\n"
+
+ def prepare(self, config_class):
+ # This is the default, but that's the point.
+ cp = config_class(allow_no_value=False)
+ cp.add_section("section")
+ cp.set("section", "option", None)
+ sio = io.StringIO()
+ cp.write(sio)
+ return sio.getvalue()
+
+ def test_none_as_value_stringified(self):
+ output = self.prepare(configparser.ConfigParser)
+ self.assertEqual(output, self.expected_output)
+
+ def test_none_as_value_stringified_raw(self):
+ output = self.prepare(configparser.RawConfigParser)
+ self.assertEqual(output, self.expected_output)
+
+
 class SortedTestCase(RawConfigParserTestCase):
 dict_type = SortedDict
 
@@ -811,6 +839,7 @@
 SafeConfigParserTestCaseNoValue,
 SafeConfigParserTestCaseTrickyFile,
 SortedTestCase,
+ Issue7005TestCase,
 StrictTestCase,
 CompatibleTestCase,
 )
Modified: python/branches/py3k/Misc/NEWS
==============================================================================
--- python/branches/py3k/Misc/NEWS	(original)
+++ python/branches/py3k/Misc/NEWS	Fri Sep 3 06:22:36 2010
@@ -155,6 +155,9 @@
 Library
 -------
 
+- Issue #7005: Fixed output of None values for RawConfigParser.write and
+ ConfigParser.write.
+
 - Issue #8990: array.fromstring() and array.tostring() get renamed to
 frombytes() and tobytes(), respectively, to avoid confusion. Furthermore,
 array.frombytes(), array.extend() as well as the array.array()


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /