Skip to content

Commit f72b44c

Browse files
committed
Factor out the error message code, and make it work nicely under Py2
1 parent db43ce2 commit f72b44c

File tree

2 files changed

+11
-10
lines changed

2 files changed

+11
-10
lines changed

html5lib/tests/support.py

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,3 +133,10 @@ def convertData(data):
133133
return convertData
134134

135135
convertExpected = convert(2)
136+
137+
def errorMessage(input, expected, actual):
138+
msg = ("Input:\n%s\nExpected:\n%s\nRecieved\n%s\n" %
139+
(repr(input), repr(expected), repr(actual)))
140+
if sys.version_info.major == 2:
141+
msg = msg.encode("ascii", "backslashreplace")
142+
return msg

html5lib/tests/test_encoding.py

Lines changed: 4 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
except AttributeError:
88
unittest.TestCase.assertEqual = unittest.TestCase.assertEquals
99

10-
from .support import get_data_files, TestData, test_dir
10+
from .support import get_data_files, TestData, test_dir, errorMessage
1111
from html5lib import HTMLParser, inputstream
1212

1313
class Html5EncodingTestCase(unittest.TestCase):
@@ -28,23 +28,17 @@ def runParserEncodingTest(data, encoding):
2828
t = p.parse(data, useChardet=False)
2929
encoding = encoding.lower().decode("ascii")
3030

31-
errorMessage = ("Input:\n%s\nExpected:\n%s\nRecieved\n%s\n"%
32-
(data, repr(encoding),
33-
repr(p.tokenizer.stream.charEncoding[0])))
34-
assert encoding == p.tokenizer.stream.charEncoding[0], errorMessage
35-
31+
assert encoding == p.tokenizer.stream.charEncoding[0], errorMessage(data, encoding, p.tokenizer.stream.charEncoding[0])
3632

3733
def runPreScanEncodingTest(data, encoding):
3834
stream = inputstream.HTMLBinaryInputStream(data, chardet=False)
3935
encoding = encoding.lower().decode("ascii")
4036

37+
# Very crude way to ignore irrelevant tests
4138
if len(data) > stream.numBytesMeta:
4239
return
4340

44-
errorMessage = ("Input:\n%s\nExpected:\n%s\nRecieved\n%s\n"%
45-
(data, repr(encoding),
46-
repr(stream.charEncoding[0])))
47-
assert encoding == stream.charEncoding[0], errorMessage
41+
assert encoding == stream.charEncoding[0], errorMessage(data, encoding, stream.charEncoding[0])
4842

4943
def test_encoding():
5044
for filename in get_data_files("encoding"):

0 commit comments

Comments
 (0)