mirror of
				https://github.com/python/cpython.git
				synced 2025-10-31 05:31:20 +00:00 
			
		
		
		
	 ea0e3b0d60
			
		
	
	
		ea0e3b0d60
		
	
	
	
	
		
			
			The added test does not fail without the patch, but we still fix the issue of surrogates being used in wide builds where they should not be.
		
			
				
	
	
		
			37 lines
		
	
	
	
		
			907 B
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			37 lines
		
	
	
	
		
			907 B
		
	
	
	
		
			Python
		
	
	
	
	
	
| # -*- coding: koi8-r -*-
 | |
| 
 | |
| import unittest
 | |
| from test import test_support
 | |
| 
 | |
| class PEP263Test(unittest.TestCase):
 | |
| 
 | |
|     def test_pep263(self):
 | |
|         self.assertEqual(
 | |
|             u"ðÉÔÏÎ".encode("utf-8"),
 | |
|             '\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd'
 | |
|         )
 | |
|         self.assertEqual(
 | |
|             u"\ð".encode("utf-8"),
 | |
|             '\\\xd0\x9f'
 | |
|         )
 | |
| 
 | |
|     def test_compilestring(self):
 | |
|         # see #1882
 | |
|         c = compile("\n# coding: utf-8\nu = u'\xc3\xb3'\n", "dummy", "exec")
 | |
|         d = {}
 | |
|         exec c in d
 | |
|         self.assertEqual(d['u'], u'\xf3')
 | |
| 
 | |
| 
 | |
|     def test_issue3297(self):
 | |
|         c = compile("a, b = '\U0001010F', '\\U0001010F'", "dummy", "exec")
 | |
|         d = {}
 | |
|         exec(c, d)
 | |
|         self.assertEqual(d['a'], d['b'])
 | |
|         self.assertEqual(len(d['a']), len(d['b']))
 | |
| 
 | |
| def test_main():
 | |
|     test_support.run_unittest(PEP263Test)
 | |
| 
 | |
| if __name__=="__main__":
 | |
|     test_main()
 |