| 
									
										
										
										
											2007-07-29 18:10:01 +00:00
										 |  |  | # This file is marked as binary in the CVS, to prevent MacCVS from recoding it. | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | import unittest | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 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: | 
					
						
							| 
									
										
										
										
											2012-02-15 23:44:03 +01:00
										 |  |  |             msg = str(msg).lower() | 
					
						
							|  |  |  |             self.assertTrue('utf-8' in msg) | 
					
						
							| 
									
										
										
										
											2007-07-29 18:10:01 +00:00
										 |  |  |         else: | 
					
						
							|  |  |  |             self.fail("expected exception didn't occur") | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-10-17 03:38:50 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 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']) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2015-04-13 15:00:43 -05:00
										 |  |  | if __name__ == "__main__": | 
					
						
							|  |  |  |     unittest.main() |