mirror of
				https://github.com/python/cpython.git
				synced 2025-10-30 21:21:22 +00:00 
			
		
		
		
	Fix codecs.EncodedFile which did not use file_encoding in 2.5.0, and
fix all codecs file wrappers to work correctly with the "with" statement (bug #1586513).
This commit is contained in:
		
							parent
							
								
									4bb9b56501
								
							
						
					
					
						commit
						8f99f81dfc
					
				
					 3 changed files with 62 additions and 4 deletions
				
			
		|  | @ -910,6 +910,18 @@ def test_readlines(self): | |||
|         f = self.reader(self.stream) | ||||
|         self.assertEquals(f.readlines(), [u'\ud55c\n', u'\uae00']) | ||||
| 
 | ||||
| class EncodedFileTest(unittest.TestCase): | ||||
|      | ||||
|     def test_basic(self): | ||||
|         f = StringIO.StringIO('\xed\x95\x9c\n\xea\xb8\x80') | ||||
|         ef = codecs.EncodedFile(f, 'utf-16', 'utf-8') | ||||
|         self.assertEquals(ef.read(), '\xff\xfe\\\xd5\n\x00\x00\xae') | ||||
| 
 | ||||
|         f = StringIO.StringIO() | ||||
|         ef = codecs.EncodedFile(f, 'utf-8', 'latin1') | ||||
|         ef.write('\xc3\xbc') | ||||
|         self.assertEquals(f.getvalue(), '\xfc') | ||||
| 
 | ||||
| class Str2StrTest(unittest.TestCase): | ||||
| 
 | ||||
|     def test_read(self): | ||||
|  | @ -1214,6 +1226,19 @@ def test_decode_with_string_map(self): | |||
|             (u"", len(allbytes)) | ||||
|         ) | ||||
| 
 | ||||
| class WithStmtTest(unittest.TestCase): | ||||
|     def test_encodedfile(self): | ||||
|         f = StringIO.StringIO("\xc3\xbc") | ||||
|         with codecs.EncodedFile(f, "latin-1", "utf-8") as ef: | ||||
|             self.assertEquals(ef.read(), "\xfc") | ||||
| 
 | ||||
|     def test_streamreaderwriter(self): | ||||
|         f = StringIO.StringIO("\xc3\xbc") | ||||
|         info = codecs.lookup("utf-8") | ||||
|         with codecs.StreamReaderWriter(f, info.streamreader, | ||||
|                                        info.streamwriter, 'strict') as srw: | ||||
|             self.assertEquals(srw.read(), u"\xfc") | ||||
| 
 | ||||
| 
 | ||||
| def test_main(): | ||||
|     test_support.run_unittest( | ||||
|  | @ -1234,10 +1259,12 @@ def test_main(): | |||
|         IDNACodecTest, | ||||
|         CodecsModuleTest, | ||||
|         StreamReaderTest, | ||||
|         EncodedFileTest, | ||||
|         Str2StrTest, | ||||
|         BasicUnicodeTest, | ||||
|         BasicStrTest, | ||||
|         CharmapTest | ||||
|         CharmapTest, | ||||
|         WithStmtTest, | ||||
|     ) | ||||
| 
 | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Georg Brandl
						Georg Brandl