'''Test module to thest the xmllib module. Sjoerd Mullender ''' testdoc = """\ <?xml version="1.0" encoding="UTF-8" standalone='yes' ?> <!-- comments aren't allowed before the <?xml?> tag, but they are allowed before the <!DOCTYPE> tag --> <?processing instructions are allowed in the same places as comments ?> <!DOCTYPE greeting [ <!ELEMENT greeting (#PCDATA)> ]> <greeting>Hello, world!</greeting> """ nsdoc = "<foo xmlns='URI' attr='val'/>" from test import test_support import unittest # Silence Py3k warning xmllib = test_support.import_module('xmllib', deprecated=True) class XMLParserTestCase(unittest.TestCase): def test_simple(self): parser = xmllib.XMLParser() for c in testdoc: parser.feed(c) parser.close() def test_default_namespace(self): class H(xmllib.XMLParser): def unknown_starttag(self, name, attr): self.name, self.attr = name, attr h=H() h.feed(nsdoc) h.close() # The default namespace applies to elements... self.assertEqual(h.name, "URI foo") # but not to attributes self.assertEqual(h.attr, {'attr':'val'}) def test_main(): test_support.run_unittest(XMLParserTestCase) if __name__ == "__main__": test_main()