import formatter import htmllib import unittest from test import support 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( """ """) parser.close() self.assertEquals(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( """ hallo   """) parser.close() self.assertEquals(parser.get_decl_info(), ["if !supportEmptyParas", "endif" ]) def test_main(): support.run_unittest(HTMLParserTestCase) if __name__ == "__main__": test_main()