diff options
Diffstat (limited to 'Lib/test/test_htmlparser.py')
-rw-r--r-- | Lib/test/test_htmlparser.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/Lib/test/test_htmlparser.py b/Lib/test/test_htmlparser.py index 1291775..44a76a4 100644 --- a/Lib/test/test_htmlparser.py +++ b/Lib/test/test_htmlparser.py @@ -787,5 +787,27 @@ class AttributesTestCase(TestCaseBase): ('starttag', 'form', [('action', 'bogus|&#()value')])]) + def test_invalid_keyword_error_exception(self): + # bpo-34480: check that subclasses that define an + # error method that raises an exception work + class InvalidMarkupException(Exception): + pass + class MyHTMLParser(html.parser.HTMLParser): + def error(self, message): + raise InvalidMarkupException(message) + parser = MyHTMLParser() + with self.assertRaises(InvalidMarkupException): + parser.feed('<![invalid>') + + def test_invalid_keyword_error_pass(self): + # bpo-34480: check that subclasses that define an + # error method that doesn't raise an exception work + class MyHTMLParser(html.parser.HTMLParser): + def error(self, message): + pass + parser = MyHTMLParser() + self.assertEqual(parser.feed('<![invalid>'), None) + + if __name__ == "__main__": unittest.main() |