22
33import os
44
5+ import pytest
6+
57from .support import get_data_files , test_dir , errorMessage , TestData as _TestData
68from html5lib import HTMLParser , inputstream
79
@@ -28,6 +30,19 @@ def test_parser_reparse():
2830 assert doc .find (".//title" ).text == "Caf\u00E9 "
2931
3032
33+ @pytest .mark .parametrize ("expected,data,kwargs" , [
34+ ("utf-16le" , b"\xFF \xFE " , {"override_encoding" : "utf-8" }),
35+ ("utf-16be" , b"\xFE \xFF " , {"override_encoding" : "utf-8" }),
36+ ("utf-8" , b"\xEF \xBB \xBF " , {"override_encoding" : "iso-8859-2" }),
37+ ])
38+ def test_parser_args (expected , data , kwargs ):
39+ stream = inputstream .HTMLBinaryInputStream (data , useChardet = False )
40+ assert expected == stream .charEncoding [0 ].name
41+ p = HTMLParser ()
42+ doc = p .parse (data , useChardet = False , ** kwargs )
43+ assert expected == p .documentEncoding
44+
45+
3146def runParserEncodingTest (data , encoding ):
3247 p = HTMLParser ()
3348 assert p .documentEncoding is None
@@ -55,6 +70,7 @@ def test_encoding():
5570 yield (runParserEncodingTest , test [b'data' ], test [b'encoding' ])
5671 yield (runPreScanEncodingTest , test [b'data' ], test [b'encoding' ])
5772
73+
5874# pylint:disable=wrong-import-position
5975try :
6076 import chardet # noqa
0 commit comments