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 | |
Tim Peters | a7c2b30 | 2002-04-11 20:18:40 +0000 | [diff] [blame] | 18 | import warnings |
| 19 | warnings.filterwarnings("ignore", ".* xmllib .* obsolete.*", |
Tim Peters | d392506 | 2002-04-16 01:27:44 +0000 | [diff] [blame] | 20 | DeprecationWarning, r'xmllib$') |
Tim Peters | a7c2b30 | 2002-04-11 20:18:40 +0000 | [diff] [blame] | 21 | |
Barry Warsaw | 04f357c | 2002-07-23 19:04:11 +0000 | [diff] [blame] | 22 | from test import test_support |
Fred Drake | babd737 | 2001-05-22 20:22:06 +0000 | [diff] [blame] | 23 | import unittest |
Guido van Rossum | 02505e4 | 1998-01-29 14:55:24 +0000 | [diff] [blame] | 24 | import xmllib |
Guido van Rossum | 02505e4 | 1998-01-29 14:55:24 +0000 | [diff] [blame] | 25 | |
Fred Drake | babd737 | 2001-05-22 20:22:06 +0000 | [diff] [blame] | 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 | |
Martin v. Löwis | 9f1340b | 2004-05-02 20:37:13 +0000 | [diff] [blame^] | 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 | |
Fred Drake | babd737 | 2001-05-22 20:22:06 +0000 | [diff] [blame] | 46 | |
Fred Drake | 2e2be37 | 2001-09-20 21:33:42 +0000 | [diff] [blame] | 47 | def test_main(): |
| 48 | test_support.run_unittest(XMLParserTestCase) |
Fred Drake | 2e2be37 | 2001-09-20 21:33:42 +0000 | [diff] [blame] | 49 | |
| 50 | if __name__ == "__main__": |
| 51 | test_main() |