[Python-checkins] cpython (merge 3.4 -> default): Issue #22221: Add tests for compile() with source encoding cookie.

serhiy.storchaka python-checkins at python.org
Fri Sep 5 10:12:00 CEST 2014


http://hg.python.org/cpython/rev/9d335a54d728
changeset: 92348:9d335a54d728
parent: 92345:858747aac9e9
parent: 92347:13cd8ea4cafe
user: Serhiy Storchaka <storchaka at gmail.com>
date: Fri Sep 05 11:01:43 2014 +0300
summary:
 Issue #22221: Add tests for compile() with source encoding cookie.
files:
 Lib/test/test_compile.py | 23 ++++++++++++++++++++---
 1 files changed, 20 insertions(+), 3 deletions(-)
diff --git a/Lib/test/test_compile.py b/Lib/test/test_compile.py
--- a/Lib/test/test_compile.py
+++ b/Lib/test/test_compile.py
@@ -304,9 +304,26 @@
 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'
+ self.assertRaises(SyntaxError, compile, code, 'tmp', 'exec')
+ code = '# -*- coding: badencoding -*-\n"\xc2\xa4"\n'
+ compile(code, 'tmp', 'exec')
+ self.assertEqual(eval(code), '\xc2\xa4')
+ code = '"\xc2\xa4"\n'
+ self.assertEqual(eval(code), '\xc2\xa4')
+ code = b'"\xc2\xa4"\n'
+ self.assertEqual(eval(code), '\xa4')
+ code = b'# -*- coding: latin1 -*-\n"\xc2\xa4"\n'
+ self.assertEqual(eval(code), '\xc2\xa4')
+ code = b'# -*- coding: utf-8 -*-\n"\xc2\xa4"\n'
+ self.assertEqual(eval(code), '\xa4')
+ code = b'# -*- coding: iso8859-15 -*-\n"\xc2\xa4"\n'
+ self.assertEqual(eval(code), '\xc2\u20ac')
+ code = '"""\\\n# -*- coding: iso8859-15 -*-\n\xc2\xa4"""\n'
+ self.assertEqual(eval(code), '# -*- coding: iso8859-15 -*-\n\xc2\xa4')
+ code = b'"""\\\n# -*- coding: iso8859-15 -*-\n\xc2\xa4"""\n'
+ self.assertEqual(eval(code), '# -*- coding: iso8859-15 -*-\n\xa4')
 
 def test_subscripts(self):
 # SF bug 1448804
-- 
Repository URL: http://hg.python.org/cpython


More information about the Python-checkins mailing list

AltStyle によって変換されたページ (->オリジナル) /