@@ -75,7 +75,15 @@ def test_parser_args_raises(kwargs):
75
75
assert exc_info .value .args [0 ].startswith ("Cannot set an encoding with a unicode input" )
76
76
77
77
78
- def runParserEncodingTest (data , encoding ):
78
+ def param_encoding ():
79
+ for filename in get_data_files ("encoding" ):
80
+ tests = _TestData (filename , b"data" , encoding = None )
81
+ for test in tests :
82
+ yield test [b'data' ], test [b'encoding' ]
83
+
84
+
85
+ @pytest .mark .parametrize ("data, encoding" , param_encoding ())
86
+ def test_parser_encoding (data , encoding ):
79
87
p = HTMLParser ()
80
88
assert p .documentEncoding is None
81
89
p .parse (data , useChardet = False )
@@ -84,7 +92,8 @@ def runParserEncodingTest(data, encoding):
84
92
assert encoding == p .documentEncoding , errorMessage (data , encoding , p .documentEncoding )
85
93
86
94
87
- def runPreScanEncodingTest (data , encoding ):
95
+ @pytest .mark .parametrize ("data, encoding" , param_encoding ())
96
+ def test_prescan_encoding (data , encoding ):
88
97
stream = _inputstream .HTMLBinaryInputStream (data , useChardet = False )
89
98
encoding = encoding .lower ().decode ("ascii" )
90
99
@@ -95,14 +104,6 @@ def runPreScanEncodingTest(data, encoding):
95
104
assert encoding == stream .charEncoding [0 ].name , errorMessage (data , encoding , stream .charEncoding [0 ].name )
96
105
97
106
98
- def test_encoding ():
99
- for filename in get_data_files ("encoding" ):
100
- tests = _TestData (filename , b"data" , encoding = None )
101
- for test in tests :
102
- yield (runParserEncodingTest , test [b'data' ], test [b'encoding' ])
103
- yield (runPreScanEncodingTest , test [b'data' ], test [b'encoding' ])
104
-
105
-
106
107
# pylint:disable=wrong-import-position
107
108
try :
108
109
import chardet # noqa
0 commit comments