| 1 | '''Test module to thest the xmllib module.
|
|---|
| 2 | Sjoerd Mullender
|
|---|
| 3 | '''
|
|---|
| 4 |
|
|---|
| 5 | testdoc = """\
|
|---|
| 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 |
|
|---|
| 16 | nsdoc = "<foo xmlns='URI' attr='val'/>"
|
|---|
| 17 |
|
|---|
| 18 | import warnings
|
|---|
| 19 | warnings.filterwarnings("ignore", ".* xmllib .* obsolete.*",
|
|---|
| 20 | DeprecationWarning, r'xmllib$')
|
|---|
| 21 |
|
|---|
| 22 | from test import test_support
|
|---|
| 23 | import unittest
|
|---|
| 24 | import xmllib
|
|---|
| 25 |
|
|---|
| 26 | class XMLParserTestCase(unittest.TestCase):
|
|---|
| 27 |
|
|---|
| 28 | def test_simple(self):
|
|---|
| 29 | parser = xmllib.XMLParser()
|
|---|
| 30 | for c in testdoc:
|
|---|
| 31 | parser.feed(c)
|
|---|
| 32 | parser.close()
|
|---|
| 33 |
|
|---|
| 34 | def test_default_namespace(self):
|
|---|
| 35 | class H(xmllib.XMLParser):
|
|---|
| 36 | def unknown_starttag(self, name, attr):
|
|---|
| 37 | self.name, self.attr = name, attr
|
|---|
| 38 | h=H()
|
|---|
| 39 | h.feed(nsdoc)
|
|---|
| 40 | h.close()
|
|---|
| 41 | # The default namespace applies to elements...
|
|---|
| 42 | self.assertEquals(h.name, "URI foo")
|
|---|
| 43 | # but not to attributes
|
|---|
| 44 | self.assertEquals(h.attr, {'attr':'val'})
|
|---|
| 45 |
|
|---|
| 46 |
|
|---|
| 47 | def test_main():
|
|---|
| 48 | test_support.run_unittest(XMLParserTestCase)
|
|---|
| 49 |
|
|---|
| 50 | if __name__ == "__main__":
|
|---|
| 51 | test_main()
|
|---|