123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869 |
- 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()
|