Guido van Rossum | 02505e4 | 1998-01-29 14:55:24 +0000 | [diff] [blame] | 1 | '''Test module to thest the xmllib module. |
| 2 | Sjoerd Mullender |
| 3 | ''' |
| 4 | |
Guido van Rossum | 02505e4 | 1998-01-29 14:55:24 +0000 | [diff] [blame] | 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 --> |
Fred Drake | babd737 | 2001-05-22 20:22:06 +0000 | [diff] [blame] | 9 | <?processing instructions are allowed in the same places as comments ?> |
Guido van Rossum | 02505e4 | 1998-01-29 14:55:24 +0000 | [diff] [blame] | 10 | <!DOCTYPE greeting [ |
| 11 | <!ELEMENT greeting (#PCDATA)> |
| 12 | ]> |
| 13 | <greeting>Hello, world!</greeting> |
| 14 | """ |
| 15 | |
Martin v. Löwis | 9f1340b | 2004-05-02 20:37:13 +0000 | [diff] [blame] | 16 | nsdoc = "<foo xmlns='URI' attr='val'/>" |
| 17 | |
Barry Warsaw | 04f357c | 2002-07-23 19:04:11 +0000 | [diff] [blame] | 18 | from test import test_support |
Fred Drake | babd737 | 2001-05-22 20:22:06 +0000 | [diff] [blame] | 19 | import unittest |
Ezio Melotti | a2d4653 | 2010-01-30 07:22:54 +0000 | [diff] [blame] | 20 | # Silence Py3k warning |
| 21 | xmllib = test_support.import_module('xmllib', deprecated=True) |
Guido van Rossum | 02505e4 | 1998-01-29 14:55:24 +0000 | [diff] [blame] | 22 | |
Fred Drake | babd737 | 2001-05-22 20:22:06 +0000 | [diff] [blame] | 23 | class 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 | |
Martin v. Löwis | 9f1340b | 2004-05-02 20:37:13 +0000 | [diff] [blame] | 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.assertEquals(h.name, "URI foo") |
| 40 | # but not to attributes |
| 41 | self.assertEquals(h.attr, {'attr':'val'}) |
| 42 | |
Fred Drake | babd737 | 2001-05-22 20:22:06 +0000 | [diff] [blame] | 43 | |
Fred Drake | 2e2be37 | 2001-09-20 21:33:42 +0000 | [diff] [blame] | 44 | def test_main(): |
| 45 | test_support.run_unittest(XMLParserTestCase) |
Fred Drake | 2e2be37 | 2001-09-20 21:33:42 +0000 | [diff] [blame] | 46 | |
| 47 | if __name__ == "__main__": |
| 48 | test_main() |