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