Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 607cb9c

Browse files
Issue #22221: Add tests for compile() with source encoding cookie.
1 parent d43ffc9 commit 607cb9c

1 file changed

Lines changed: 20 additions & 3 deletions

File tree

Lib/test/test_compile.py

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -304,9 +304,26 @@ def test_lambda_doc(self):
304304
l = lambda: "foo"
305305
self.assertIsNone(l.__doc__)
306306

307-
## def test_unicode_encoding(self):
308-
## code = "# -*- coding: utf-8 -*-\npass\n"
309-
## self.assertRaises(SyntaxError, compile, code, "tmp", "exec")
307+
def test_encoding(self):
308+
code = b'# -*- coding: badencoding -*-\npass\n'
309+
self.assertRaises(SyntaxError, compile, code, 'tmp', 'exec')
310+
code = '# -*- coding: badencoding -*-\n"\xc2\xa4"\n'
311+
compile(code, 'tmp', 'exec')
312+
self.assertEqual(eval(code), '\xc2\xa4')
313+
code = '"\xc2\xa4"\n'
314+
self.assertEqual(eval(code), '\xc2\xa4')
315+
code = b'"\xc2\xa4"\n'
316+
self.assertEqual(eval(code), '\xa4')
317+
code = b'# -*- coding: latin1 -*-\n"\xc2\xa4"\n'
318+
self.assertEqual(eval(code), '\xc2\xa4')
319+
code = b'# -*- coding: utf-8 -*-\n"\xc2\xa4"\n'
320+
self.assertEqual(eval(code), '\xa4')
321+
code = b'# -*- coding: iso8859-15 -*-\n"\xc2\xa4"\n'
322+
self.assertEqual(eval(code), '\xc2\u20ac')
323+
code = '"""\\\n# -*- coding: iso8859-15 -*-\n\xc2\xa4"""\n'
324+
self.assertEqual(eval(code), '# -*- coding: iso8859-15 -*-\n\xc2\xa4')
325+
code = b'"""\\\n# -*- coding: iso8859-15 -*-\n\xc2\xa4"""\n'
326+
self.assertEqual(eval(code), '# -*- coding: iso8859-15 -*-\n\xa4')
310327

311328
def test_subscripts(self):
312329
# SF bug 1448804

0 commit comments

Comments
 (0)