@@ -100,6 +100,42 @@ def test_treewalker_six_mix():
100
100
yield runTreewalkerEditTest , intext , expected , attrs , tree
101
101
102
102
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
+
103
139
@pytest .mark .skipif (treeTypes ["lxml" ] is None , reason = "lxml not importable" )
104
140
def test_lxml_xml ():
105
141
expected = [
0 commit comments