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