@@ -1172,129 +1172,6 @@ def test_extract_headers(self):
1172
1172
),
1173
1173
)
1174
1174
1175
- def test_tree_line_generator (self ):
1176
- from quotequail import _html
1177
-
1178
- tree = _html .get_html_tree ("<div>foo <span>bar</span><br>baz</div>" )
1179
- data = list (_html .tree_line_generator (tree ))
1180
- div = tree .xpath ("div" )[0 ]
1181
- br = tree .xpath ("div/br" )[0 ]
1182
- self .assertEqual (
1183
- data ,
1184
- [
1185
- ((div , "begin" ), (br , "begin" ), 0 , "foo bar" ),
1186
- ((br , "end" ), (div , "end" ), 0 , "baz" ),
1187
- ],
1188
- )
1189
- data = list (_html .tree_line_generator (tree , max_lines = 1 ))
1190
- div = tree .xpath ("div" )[0 ]
1191
- br = tree .xpath ("div/br" )[0 ]
1192
- self .assertEqual (
1193
- data ,
1194
- [
1195
- ((div , "begin" ), (br , "begin" ), 0 , "foo bar" ),
1196
- ],
1197
- )
1198
-
1199
- tree = _html .get_html_tree ("<div><h1>foo</h1>bar</div>" )
1200
- data = list (_html .tree_line_generator (tree ))
1201
- div = tree .xpath ("div" )[0 ]
1202
- h1 = tree .xpath ("div/h1" )[0 ]
1203
- self .assertEqual (
1204
- data ,
1205
- [
1206
- ((h1 , "begin" ), (h1 , "end" ), 0 , "foo" ),
1207
- ((h1 , "end" ), (div , "end" ), 0 , "bar" ),
1208
- ],
1209
- )
1210
-
1211
- tree = _html .get_html_tree (
1212
- "<div><blockquote>hi</blockquote>world</div>"
1213
- )
1214
- data = list (_html .tree_line_generator (tree ))
1215
- div = tree .xpath ("div" )[0 ]
1216
- blockquote = tree .xpath ("div/blockquote" )[0 ]
1217
- self .assertEqual (
1218
- data ,
1219
- [
1220
- ((blockquote , "begin" ), (blockquote , "end" ), 1 , "hi" ),
1221
- ((blockquote , "end" ), (div , "end" ), 0 , "world" ),
1222
- ],
1223
- )
1224
-
1225
- tree = _html .get_html_tree (
1226
- """
1227
- <table>
1228
- <tr><td>Subject: </td><td>the subject</td></tr>
1229
- <tr><td>From: </td><td>from line</td></tr>
1230
- </table>"""
1231
- )
1232
- data = list (_html .tree_line_generator (tree ))
1233
- tr1 , tr2 = tree .xpath ("table/tr" )
1234
- self .assertEqual (
1235
- data ,
1236
- [
1237
- ((tr1 , "begin" ), (tr1 , "end" ), 0 , "Subject: the subject" ),
1238
- ((tr2 , "begin" ), (tr2 , "end" ), 0 , "From: from line" ),
1239
- ],
1240
- )
1241
-
1242
- def test_trim_after (self ):
1243
- from quotequail import _html
1244
-
1245
- html = "<div>A<span>B</span>C<span>D</span>E</div>"
1246
-
1247
- tree = _html .get_html_tree (html )
1248
- _html .trim_tree_after (tree .find ("div/span" ))
1249
- self .assertEqual (
1250
- _html .render_html_tree (tree ), "<div>A<span>B</span></div>"
1251
- )
1252
-
1253
- tree = _html .get_html_tree (html )
1254
- _html .trim_tree_after (tree .find ("div/span[2]" ))
1255
- self .assertEqual (
1256
- _html .render_html_tree (tree ),
1257
- "<div>A<span>B</span>C<span>D</span></div>" ,
1258
- )
1259
-
1260
- tree = _html .get_html_tree (html )
1261
- _html .trim_tree_after (tree .find ("div/span" ), include_element = False )
1262
- self .assertEqual (_html .render_html_tree (tree ), "<div>A</div>" )
1263
-
1264
- tree = _html .get_html_tree (html )
1265
- _html .trim_tree_after (tree .find ("div/span[2]" ), include_element = False )
1266
- self .assertEqual (
1267
- _html .render_html_tree (tree ), "<div>A<span>B</span>C</div>"
1268
- )
1269
-
1270
- def test_trim_before (self ):
1271
- from quotequail import _html
1272
-
1273
- html = "<div>A<span>B</span>C<span>D</span>E</div>"
1274
-
1275
- tree = _html .get_html_tree (html )
1276
- _html .trim_tree_before (tree .find ("div/span" ))
1277
- self .assertEqual (
1278
- _html .render_html_tree (tree ),
1279
- "<div><span>B</span>C<span>D</span>E</div>" ,
1280
- )
1281
-
1282
- tree = _html .get_html_tree (html )
1283
- _html .trim_tree_before (tree .find ("div/span[2]" ))
1284
- self .assertEqual (
1285
- _html .render_html_tree (tree ), "<div><span>D</span>E</div>"
1286
- )
1287
-
1288
- tree = _html .get_html_tree (html )
1289
- _html .trim_tree_before (tree .find ("div/span" ), include_element = False )
1290
- self .assertEqual (
1291
- _html .render_html_tree (tree ), "<div>C<span>D</span>E</div>"
1292
- )
1293
-
1294
- tree = _html .get_html_tree (html )
1295
- _html .trim_tree_before (tree .find ("div/span[2]" ), include_element = False )
1296
- self .assertEqual (_html .render_html_tree (tree ), "<div>E</div>" )
1297
-
1298
1175
1299
1176
if __name__ == "__main__" :
1300
1177
unittest .main ()
0 commit comments