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