Home | History | Annotate | Download | only in test
      1 # This file is marked as binary in the CVS, to prevent MacCVS from recoding it.
      2 
      3 import unittest
      4 
      5 class 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 
     27 class 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 
     42 if __name__ == "__main__":
     43     unittest.main()
     44