17db96d56Sopenharmony_ci# This file is marked as binary in the CVS, to prevent MacCVS from recoding it. 27db96d56Sopenharmony_ci 37db96d56Sopenharmony_ciimport unittest 47db96d56Sopenharmony_ci 57db96d56Sopenharmony_ciclass PEP3120Test(unittest.TestCase): 67db96d56Sopenharmony_ci 77db96d56Sopenharmony_ci def test_pep3120(self): 87db96d56Sopenharmony_ci self.assertEqual( 97db96d56Sopenharmony_ci "Питон".encode("utf-8"), 107db96d56Sopenharmony_ci b'\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd' 117db96d56Sopenharmony_ci ) 127db96d56Sopenharmony_ci self.assertEqual( 137db96d56Sopenharmony_ci "\П".encode("utf-8"), 147db96d56Sopenharmony_ci b'\\\xd0\x9f' 157db96d56Sopenharmony_ci ) 167db96d56Sopenharmony_ci 177db96d56Sopenharmony_ci def test_badsyntax(self): 187db96d56Sopenharmony_ci try: 197db96d56Sopenharmony_ci import test.badsyntax_pep3120 207db96d56Sopenharmony_ci except SyntaxError as msg: 217db96d56Sopenharmony_ci msg = str(msg).lower() 227db96d56Sopenharmony_ci self.assertTrue('utf-8' in msg) 237db96d56Sopenharmony_ci else: 247db96d56Sopenharmony_ci self.fail("expected exception didn't occur") 257db96d56Sopenharmony_ci 267db96d56Sopenharmony_ci 277db96d56Sopenharmony_ciclass BuiltinCompileTests(unittest.TestCase): 287db96d56Sopenharmony_ci 297db96d56Sopenharmony_ci # Issue 3574. 307db96d56Sopenharmony_ci def test_latin1(self): 317db96d56Sopenharmony_ci # Allow compile() to read Latin-1 source. 327db96d56Sopenharmony_ci source_code = '# coding: Latin-1\nu = "Ç"\n'.encode("Latin-1") 337db96d56Sopenharmony_ci try: 347db96d56Sopenharmony_ci code = compile(source_code, '<dummy>', 'exec') 357db96d56Sopenharmony_ci except SyntaxError: 367db96d56Sopenharmony_ci self.fail("compile() cannot handle Latin-1 source") 377db96d56Sopenharmony_ci ns = {} 387db96d56Sopenharmony_ci exec(code, ns) 397db96d56Sopenharmony_ci self.assertEqual('Ç', ns['u']) 407db96d56Sopenharmony_ci 417db96d56Sopenharmony_ci 427db96d56Sopenharmony_ciif __name__ == "__main__": 437db96d56Sopenharmony_ci unittest.main() 44