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