Skip to content

Commit 11dfaf6

Browse files
Add test for HTMLParser.flush() method.
1 parent 70db209 commit 11dfaf6

1 file changed

Lines changed: 18 additions & 0 deletions

File tree

Lib/test/test_htmlparser.py

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1023,6 +1023,24 @@ def test_convert_charrefs_dropped_text(self):
10231023
('endtag', 'a'), ('data', ' bar & baz')]
10241024
)
10251025

1026+
def test_flush(self):
1027+
attrs = [(f"a{i}", str(i)) for i in range(8)]
1028+
parts = ["<div", *[f' {attr[0]}="{attr[1]}"' for attr in attrs], ">", "</div>"]
1029+
parser = EventCollector()
1030+
for part in parts:
1031+
parser.feed(part)
1032+
# confirm the fed data is buffered and not processed yet
1033+
self.assertEqual(parser.get_events(), [])
1034+
parser.flush()
1035+
expected = [
1036+
('starttag', 'div', attrs),
1037+
('endtag', 'div'),
1038+
]
1039+
self.assertEqual(parser.get_events(), expected)
1040+
parser.close()
1041+
# close should do nothing, event log is the same as before
1042+
self.assertEqual(parser.get_events(), expected)
1043+
10261044
@support.requires_resource('cpu')
10271045
def test_eof_no_quadratic_complexity(self):
10281046
# Each of these examples used to take about an hour.

0 commit comments

Comments
 (0)