cpython: 9d335a54d728 (original) (raw)
Mercurial > cpython
changeset 92348:9d335a54d728
Issue #22221: Add tests for compile() with source encoding cookie. [#22221]
Serhiy Storchaka storchaka@gmail.com | |
---|---|
date | Fri, 05 Sep 2014 11:01:43 +0300 |
parents | 858747aac9e9(current diff)13cd8ea4cafe(diff) |
children | 060e347c9a23 |
files | |
diffstat | 1 files changed, 20 insertions(+), 3 deletions(-)[+] [-] Lib/test/test_compile.py 23 |
line wrap: on
line diff
--- a/Lib/test/test_compile.py +++ b/Lib/test/test_compile.py @@ -304,9 +304,26 @@ if 1: l = lambda: "foo" self.assertIsNone(l.doc) -## def test_unicode_encoding(self): -## code = "# -- coding: utf-8 --\npass\n" -## self.assertRaises(SyntaxError, compile, code, "tmp", "exec")
- def test_encoding(self):
code = b'# -*- coding: badencoding -*-\npass\n'[](#l1.11)
self.assertRaises(SyntaxError, compile, code, 'tmp', 'exec')[](#l1.12)
code = '# -*- coding: badencoding -*-\n"\xc2\xa4"\n'[](#l1.13)
compile(code, 'tmp', 'exec')[](#l1.14)
self.assertEqual(eval(code), '\xc2\xa4')[](#l1.15)
code = '"\xc2\xa4"\n'[](#l1.16)
self.assertEqual(eval(code), '\xc2\xa4')[](#l1.17)
code = b'"\xc2\xa4"\n'[](#l1.18)
self.assertEqual(eval(code), '\xa4')[](#l1.19)
code = b'# -*- coding: latin1 -*-\n"\xc2\xa4"\n'[](#l1.20)
self.assertEqual(eval(code), '\xc2\xa4')[](#l1.21)
code = b'# -*- coding: utf-8 -*-\n"\xc2\xa4"\n'[](#l1.22)
self.assertEqual(eval(code), '\xa4')[](#l1.23)
code = b'# -*- coding: iso8859-15 -*-\n"\xc2\xa4"\n'[](#l1.24)
self.assertEqual(eval(code), '\xc2\u20ac')[](#l1.25)
code = '"""\\\n# -*- coding: iso8859-15 -*-\n\xc2\xa4"""\n'[](#l1.26)
self.assertEqual(eval(code), '# -*- coding: iso8859-15 -*-\n\xc2\xa4')[](#l1.27)
code = b'"""\\\n# -*- coding: iso8859-15 -*-\n\xc2\xa4"""\n'[](#l1.28)
self.assertEqual(eval(code), '# -*- coding: iso8859-15 -*-\n\xa4')[](#l1.29)