Skip to content

Commit 9e3b9cb

Browse files
committed
test: read_html() rewinding after parse errors
1 parent ec4bd0b commit 9e3b9cb

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

pandas/tests/io/test_html.py

+27
Original file line numberDiff line numberDiff line change
@@ -990,3 +990,30 @@ def seekable(self):
990990
match='passed a non-rewindable file object'):
991991
read_html(bad)
992992

993+
994+
def test_parse_failure_rewinds():
995+
_skip_if_no('lxml')
996+
997+
# Issue #17975
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)