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