File tree 1 file changed +26
-0
lines changed
1 file changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -991,3 +991,29 @@ def seekable(self):
991
991
match = 'passed a non-rewindable file object' ):
992
992
read_html (bad )
993
993
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 )
You can’t perform that action at this time.
0 commit comments