diff options
Diffstat (limited to 'lib-python/2.7/test/test_htmllib.py')
-rw-r--r-- | lib-python/2.7/test/test_htmllib.py | 69 |
1 files changed, 69 insertions, 0 deletions
diff --git a/lib-python/2.7/test/test_htmllib.py b/lib-python/2.7/test/test_htmllib.py new file mode 100644 index 0000000000..03813b0a7c --- /dev/null +++ b/lib-python/2.7/test/test_htmllib.py @@ -0,0 +1,69 @@ +import formatter +import unittest + +from test import test_support +htmllib = test_support.import_module('htmllib', deprecated=True) + + +class AnchorCollector(htmllib.HTMLParser): + def __init__(self, *args, **kw): + self.__anchors = [] + htmllib.HTMLParser.__init__(self, *args, **kw) + + def get_anchor_info(self): + return self.__anchors + + def anchor_bgn(self, *args): + self.__anchors.append(args) + +class DeclCollector(htmllib.HTMLParser): + def __init__(self, *args, **kw): + self.__decls = [] + htmllib.HTMLParser.__init__(self, *args, **kw) + + def get_decl_info(self): + return self.__decls + + def unknown_decl(self, data): + self.__decls.append(data) + + +class HTMLParserTestCase(unittest.TestCase): + def test_anchor_collection(self): + # See SF bug #467059. + parser = AnchorCollector(formatter.NullFormatter(), verbose=1) + parser.feed( + """<a href='http://foo.org/' name='splat'> </a> + <a href='http://www.python.org/'> </a> + <a name='frob'> </a> + """) + parser.close() + self.assertEqual(parser.get_anchor_info(), + [('http://foo.org/', 'splat', ''), + ('http://www.python.org/', '', ''), + ('', 'frob', ''), + ]) + + def test_decl_collection(self): + # See SF patch #545300 + parser = DeclCollector(formatter.NullFormatter(), verbose=1) + parser.feed( + """<html> + <body> + hallo + <![if !supportEmptyParas]> <![endif]> + </body> + </html> + """) + parser.close() + self.assertEqual(parser.get_decl_info(), + ["if !supportEmptyParas", + "endif" + ]) + +def test_main(): + test_support.run_unittest(HTMLParserTestCase) + + +if __name__ == "__main__": + test_main() |