Skip to content

Commit e9b5fb7

Browse files
committed
Fix html5lib#132: add test for html5lib#115, single character fragments
1 parent 1ff3c80 commit e9b5fb7

File tree

1 file changed

+36
-0
lines changed

1 file changed

+36
-0
lines changed

html5lib/tests/test_treewalkers.py

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,42 @@ def test_treewalker_six_mix():
100100
yield runTreewalkerEditTest, intext, expected, attrs, tree
101101

102102

103+
@pytest.mark.parametrize("tree", sorted(treeTypes.items()))
104+
def test_fragment_single_char(tree):
105+
expected = [
106+
{'data': 'x', 'type': 'Characters'}
107+
]
108+
109+
treeName, treeClass = tree
110+
if treeClass is None:
111+
pytest.skip("Treebuilder not loaded")
112+
113+
parser = html5parser.HTMLParser(tree=treeClass["builder"])
114+
document = parser.parseFragment("x")
115+
document = treeClass.get("adapter", lambda x: x)(document)
116+
output = Lint(treeClass["walker"](document))
117+
118+
assert list(output) == expected
119+
120+
121+
@pytest.mark.parametrize("tree", sorted(treeTypes.items()))
122+
def test_fragment_single_non_ascii_char(tree):
123+
expected = [
124+
{'data': '\u1234', 'type': 'Characters'}
125+
]
126+
127+
treeName, treeClass = tree
128+
if treeClass is None:
129+
pytest.skip("Treebuilder not loaded")
130+
131+
parser = html5parser.HTMLParser(tree=treeClass["builder"])
132+
document = parser.parseFragment("\u1234")
133+
document = treeClass.get("adapter", lambda x: x)(document)
134+
output = Lint(treeClass["walker"](document))
135+
136+
assert list(output) == expected
137+
138+
103139
@pytest.mark.skipif(treeTypes["lxml"] is None, reason="lxml not importable")
104140
def test_lxml_xml():
105141
expected = [

0 commit comments

Comments
 (0)