You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
49 lines
1.3 KiB
49 lines
1.3 KiB
4 months ago
|
'''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()
|