Commit | Line | Data |
---|---|---|
920dae64 AT |
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() |