Skip to content

Commit eb9d525

Browse files
committed
test: read_html() rewinding after parse errors
1 parent 12a48cf commit eb9d525

File tree

1 file changed

+26
-0
lines changed

1 file changed

+26
-0
lines changed

pandas/tests/io/test_html.py

+26
Original file line numberDiff line numberDiff line change
@@ -991,3 +991,29 @@ def seekable(self):
991991
match='passed a non-rewindable file object'):
992992
read_html(bad)
993993

994+
995+
def test_parse_failure_rewinds():
996+
# Issue #17975
997+
_skip_if_no('lxml')
998+
999+
class MockFile(object):
1000+
def __init__(self, data):
1001+
self.data = data
1002+
self.at_end = False
1003+
1004+
def read(self, size=None):
1005+
data = '' if self.at_end else self.data
1006+
self.at_end = True
1007+
return data
1008+
1009+
def seek(self, offset):
1010+
self.at_end = False
1011+
1012+
def seekable(self):
1013+
return True
1014+
1015+
good = MockFile('<table><tr><td>spam<br />eggs</td></tr></table>')
1016+
bad = MockFile('<table><tr><td>spam<foobr />eggs</td></tr></table>')
1017+
1018+
assert read_html(good)
1019+
assert read_html(bad)

0 commit comments

Comments
 (0)