Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commita603dc5

Browse files
committed
fixup! fixup! fixup! fixup!Fix#120: introduce keyword arguments for encodings by source
1 parent714dca5 commita603dc5

File tree

2 files changed

+28
-5
lines changed

2 files changed

+28
-5
lines changed

‎html5lib/inputstream.py

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ def _readFromBuffer(self, bytes):
128128
returnb"".join(rv)
129129

130130

131-
defHTMLInputStream(source,override_encoding=None,**kwargs):
131+
defHTMLInputStream(source,**kwargs):
132132
# Work around Python bug #20007: read(0) closes the connection.
133133
# http://bugs.python.org/issue20007
134134
if (isinstance(source,http_client.HTTPResponse)or
@@ -142,12 +142,13 @@ def HTMLInputStream(source, override_encoding=None, **kwargs):
142142
isUnicode=isinstance(source,text_type)
143143

144144
ifisUnicode:
145-
ifoverride_encodingisnotNone:
146-
raiseTypeError("Cannot set an override encoding with a unicode input")
145+
encodings= [xforxinkwargsifx.endswith("_encoding")]
146+
ifencodings:
147+
raiseTypeError("Cannot set an encoding with a unicode input, set %r"%encodings)
147148

148-
returnHTMLUnicodeInputStream(source)
149+
returnHTMLUnicodeInputStream(source,**kwargs)
149150
else:
150-
returnHTMLBinaryInputStream(source,override_encoding=override_encoding,**kwargs)
151+
returnHTMLBinaryInputStream(source,**kwargs)
151152

152153

153154
classHTMLUnicodeInputStream(object):

‎html5lib/tests/test_encoding.py

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,7 @@ def test_parser_reparse():
4343
("iso-8859-2",b"", {"same_origin_parent_encoding":"utf-16le","likely_encoding":"iso-8859-2"}),
4444
("iso-8859-2",b"", {"likely_encoding":"iso-8859-2","default_encoding":"iso-8859-3"}),
4545
("iso-8859-2",b"", {"default_encoding":"iso-8859-2"}),
46+
("windows-1252",b"", {"default_encoding":"totally-bogus-string"}),
4647
("windows-1252",b"", {}),
4748
])
4849
deftest_parser_args(expected,data,kwargs):
@@ -53,6 +54,27 @@ def test_parser_args(expected, data, kwargs):
5354
assertexpected==p.documentEncoding
5455

5556

57+
@pytest.mark.parametrize("kwargs", [
58+
{"override_encoding":"iso-8859-2"},
59+
{"override_encoding":None},
60+
{"transport_encoding":"iso-8859-2"},
61+
{"transport_encoding":None},
62+
{"same_origin_parent_encoding":"iso-8859-2"},
63+
{"same_origin_parent_encoding":None},
64+
{"likely_encoding":"iso-8859-2"},
65+
{"likely_encoding":None},
66+
{"default_encoding":"iso-8859-2"},
67+
{"default_encoding":None},
68+
{"foo_encoding":"iso-8859-2"},
69+
{"foo_encoding":None},
70+
])
71+
deftest_parser_args_raises(kwargs):
72+
withpytest.raises(TypeError)asexc_info:
73+
p=HTMLParser()
74+
p.parse("",useChardet=False,**kwargs)
75+
assertexc_info.value.message.startswith("Cannot set an encoding with a unicode input")
76+
77+
5678
defrunParserEncodingTest(data,encoding):
5779
p=HTMLParser()
5880
assertp.documentEncodingisNone

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp