1# This file is marked as binary in the CVS, to prevent MacCVS from recoding it. 2 3import unittest 4 5class PEP3120Test(unittest.TestCase): 6 7 def test_pep3120(self): 8 self.assertEqual( 9 "Питон".encode("utf-8"), 10 b'\xd0\x9f\xd0\xb8\xd1\x82\xd0\xbe\xd0\xbd' 11 ) 12 self.assertEqual( 13 "\П".encode("utf-8"), 14 b'\\\xd0\x9f' 15 ) 16 17 def test_badsyntax(self): 18 try: 19 import test.badsyntax_pep3120 20 except SyntaxError as msg: 21 msg = str(msg).lower() 22 self.assertTrue('utf-8' in msg) 23 else: 24 self.fail("expected exception didn't occur") 25 26 27class BuiltinCompileTests(unittest.TestCase): 28 29 # Issue 3574. 30 def test_latin1(self): 31 # Allow compile() to read Latin-1 source. 32 source_code = '# coding: Latin-1\nu = "Ç"\n'.encode("Latin-1") 33 try: 34 code = compile(source_code, '<dummy>', 'exec') 35 except SyntaxError: 36 self.fail("compile() cannot handle Latin-1 source") 37 ns = {} 38 exec(code, ns) 39 self.assertEqual('Ç', ns['u']) 40 41 42if __name__ == "__main__": 43 unittest.main() 44