mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 10:26:02 +00:00 
			
		
		
		
	 8f36af7a4c
			
		
	
	
		8f36af7a4c
		
	
	
	
	
		
			
			'latin-1' and 'utf-8'. These are optimized in the Python Unicode implementation to result in more direct processing, bypassing the codec registry. Also see issue11303.
		
			
				
	
	
		
			47 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
	
		
			1.3 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| # This file is marked as binary in the CVS, to prevent MacCVS from recoding it.
 | |
| 
 | |
| import unittest
 | |
| from test import support
 | |
| 
 | |
| class PEP3120Test(unittest.TestCase):
 | |
| 
 | |
|     def test_pep3120(self):
 | |
|         self.assertEqual(
 | |
|             "Питон".encode("utf-8"),
 | |
|             b'\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd'
 | |
|         )
 | |
|         self.assertEqual(
 | |
|             "\П".encode("utf-8"),
 | |
|             b'\\\xd0\x9f'
 | |
|         )
 | |
| 
 | |
|     def test_badsyntax(self):
 | |
|         try:
 | |
|             import test.badsyntax_pep3120
 | |
|         except SyntaxError as msg:
 | |
|             msg = str(msg).lower()
 | |
|             self.assertTrue('utf-8' in msg or 'utf8' in msg)
 | |
|         else:
 | |
|             self.fail("expected exception didn't occur")
 | |
| 
 | |
| 
 | |
| class BuiltinCompileTests(unittest.TestCase):
 | |
| 
 | |
|     # Issue 3574.
 | |
|     def test_latin1(self):
 | |
|         # Allow compile() to read Latin-1 source.
 | |
|         source_code = '# coding: Latin-1\nu = "Ç"\n'.encode("Latin-1")
 | |
|         try:
 | |
|             code = compile(source_code, '<dummy>', 'exec')
 | |
|         except SyntaxError:
 | |
|             self.fail("compile() cannot handle Latin-1 source")
 | |
|         ns = {}
 | |
|         exec(code, ns)
 | |
|         self.assertEqual('Ç', ns['u'])
 | |
| 
 | |
| 
 | |
| def test_main():
 | |
|     support.run_unittest(PEP3120Test, BuiltinCompileTests)
 | |
| 
 | |
| if __name__=="__main__":
 | |
|     test_main()
 |