@@ -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 -*-\n pass\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