1'''Test module to thest the xmllib module. 2 Sjoerd Mullender 3''' 4 5testdoc = """\ 6<?xml version="1.0" encoding="UTF-8" standalone='yes' ?> 7<!-- comments aren't allowed before the <?xml?> tag, 8 but they are allowed before the <!DOCTYPE> tag --> 9<?processing instructions are allowed in the same places as comments ?> 10<!DOCTYPE greeting [ 11 <!ELEMENT greeting (#PCDATA)> 12]> 13<greeting>Hello, world!</greeting> 14""" 15 16nsdoc = "<foo xmlns='URI' attr='val'/>" 17 18from test import test_support 19import unittest 20# Silence Py3k warning 21xmllib = test_support.import_module('xmllib', deprecated=True) 22 23class XMLParserTestCase(unittest.TestCase): 24 25 def test_simple(self): 26 parser = xmllib.XMLParser() 27 for c in testdoc: 28 parser.feed(c) 29 parser.close() 30 31 def test_default_namespace(self): 32 class H(xmllib.XMLParser): 33 def unknown_starttag(self, name, attr): 34 self.name, self.attr = name, attr 35 h=H() 36 h.feed(nsdoc) 37 h.close() 38 # The default namespace applies to elements... 39 self.assertEqual(h.name, "URI foo") 40 # but not to attributes 41 self.assertEqual(h.attr, {'attr':'val'}) 42 43 44def test_main(): 45 test_support.run_unittest(XMLParserTestCase) 46 47if __name__ == "__main__": 48 test_main() 49