mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	fix output from RawConfigParser.write and ConfigParser.write for None
values (http://bugs.python.org/issue7005)
This commit is contained in:
		
							parent
							
								
									5cd2d8c7ec
								
							
						
					
					
						commit
						a1e627d61c
					
				
					 3 changed files with 32 additions and 1 deletions
				
			
		|  | @ -400,7 +400,7 @@ def write(self, fp): | ||||||
|             for (key, value) in self._sections[section].items(): |             for (key, value) in self._sections[section].items(): | ||||||
|                 if key == "__name__": |                 if key == "__name__": | ||||||
|                     continue |                     continue | ||||||
|                 if value is not None: |                 if (value is not None) or (self._optcre == self.OPTCRE): | ||||||
|                     key = " = ".join((key, str(value).replace('\n', '\n\t'))) |                     key = " = ".join((key, str(value).replace('\n', '\n\t'))) | ||||||
|                 fp.write("%s\n" % (key)) |                 fp.write("%s\n" % (key)) | ||||||
|             fp.write("\n") |             fp.write("\n") | ||||||
|  |  | ||||||
|  | @ -530,6 +530,33 @@ class SafeConfigParserTestCaseNoValue(SafeConfigParserTestCase): | ||||||
|     allow_no_value = True |     allow_no_value = True | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | 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 = StringIO.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): | class SortedTestCase(RawConfigParserTestCase): | ||||||
|     def newconfig(self, defaults=None): |     def newconfig(self, defaults=None): | ||||||
|         self.cf = self.config_class(defaults=defaults, dict_type=SortedDict) |         self.cf = self.config_class(defaults=defaults, dict_type=SortedDict) | ||||||
|  | @ -563,6 +590,7 @@ def test_main(): | ||||||
|         SafeConfigParserTestCase, |         SafeConfigParserTestCase, | ||||||
|         SafeConfigParserTestCaseNoValue, |         SafeConfigParserTestCaseNoValue, | ||||||
|         SortedTestCase, |         SortedTestCase, | ||||||
|  |         Issue7005TestCase, | ||||||
|         ) |         ) | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -36,6 +36,9 @@ Core and Builtins | ||||||
| Library | Library | ||||||
| ------- | ------- | ||||||
| 
 | 
 | ||||||
|  | - Issue #7005: Fixed output of None values for RawConfigParser.write and | ||||||
|  |   ConfigParser.write. | ||||||
|  | 
 | ||||||
| - Issue #808164: Fixed socket.close to avoid references to globals, to | - Issue #808164: Fixed socket.close to avoid references to globals, to | ||||||
|   avoid issues when socket.close is called from a __del__ method. |   avoid issues when socket.close is called from a __del__ method. | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Fred Drake
						Fred Drake