@@ -1487,12 +1487,23 @@ def test_syntaxerror_latin1(self):
14871487
14881488 def test_nonascii_coding (self ):
14891489 # gh-63161: test non-ASCII coding
1490- lines = (
1491- '#coding=iso8859-15 €' .encode ('iso8859-15' ),
1492- )
1493- readline = self .get_readline (lines )
1494- found , consumed_lines = tokenize .detect_encoding (readline )
1495- self .assertEqual (found , "iso8859-15" )
1490+ tests = [
1491+ ['iso8859-15' ,
1492+ ['#coding=iso8859-15 €' .encode ('iso8859-15' )]],
1493+ ['iso8859-15' ,
1494+ [b"#!/usr/bin/python\n " ,
1495+ '#coding=iso8859-15 €' .encode ('iso8859-15' )]],
1496+ ['ascii' ,
1497+ [b"#!/usr/bin/python\n " ,
1498+ '#coding=ascii €' .encode ('utf8' )]],
1499+ ['ascii' ,
1500+ ['#coding=ascii €' .encode ('utf8' )]],
1501+ ]
1502+ for encoding , lines in tests :
1503+ with self .subTest (encoding = encoding , lines = ascii (lines )):
1504+ readline = self .get_readline (lines )
1505+ found , consumed_lines = tokenize .detect_encoding (readline )
1506+ self .assertEqual (found , encoding )
14961507
14971508 def test_utf8_normalization (self ):
14981509 # See get_normal_name() in Parser/tokenizer/helpers.c.
0 commit comments