diff -r ffa851df0825 -r 2fb8b9db1c86 symbian-qemu-0.9.1-12/python-2.6.1/Lib/test/test_xml_etree.py
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/symbian-qemu-0.9.1-12/python-2.6.1/Lib/test/test_xml_etree.py Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,355 @@
+# xml.etree test. This file contains enough tests to make sure that
+# all included components work as they should. For a more extensive
+# test suite, see the selftest script in the ElementTree distribution.
+
+import doctest
+import sys
+
+from test import test_support
+
+SAMPLE_XML = """
+
+ text
+
+
+
+"""
+
+SAMPLE_XML_NS = """
+
+ text
+
+
+
+"""
+
+def sanity():
+ """
+ Import sanity.
+
+ >>> from xml.etree import ElementTree
+ >>> from xml.etree import ElementInclude
+ >>> from xml.etree import ElementPath
+ """
+
+def check_method(method):
+ if not callable(method):
+ print method, "not callable"
+
+def serialize(ET, elem, encoding=None):
+ import StringIO
+ file = StringIO.StringIO()
+ tree = ET.ElementTree(elem)
+ if encoding:
+ tree.write(file, encoding)
+ else:
+ tree.write(file)
+ return file.getvalue()
+
+def summarize(elem):
+ return elem.tag
+
+def summarize_list(seq):
+ return map(summarize, seq)
+
+def interface():
+ """
+ Test element tree interface.
+
+ >>> from xml.etree import ElementTree as ET
+
+ >>> element = ET.Element("tag", key="value")
+ >>> tree = ET.ElementTree(element)
+
+ Make sure all standard element methods exist.
+
+ >>> check_method(element.append)
+ >>> check_method(element.insert)
+ >>> check_method(element.remove)
+ >>> check_method(element.getchildren)
+ >>> check_method(element.find)
+ >>> check_method(element.findall)
+ >>> check_method(element.findtext)
+ >>> check_method(element.clear)
+ >>> check_method(element.get)
+ >>> check_method(element.set)
+ >>> check_method(element.keys)
+ >>> check_method(element.items)
+ >>> check_method(element.getiterator)
+
+ Basic method sanity checks.
+
+ >>> serialize(ET, element) # 1
+ ''
+ >>> subelement = ET.Element("subtag")
+ >>> element.append(subelement)
+ >>> serialize(ET, element) # 2
+ ''
+ >>> element.insert(0, subelement)
+ >>> serialize(ET, element) # 3
+ ''
+ >>> element.remove(subelement)
+ >>> serialize(ET, element) # 4
+ ''
+ >>> element.remove(subelement)
+ >>> serialize(ET, element) # 5
+ ''
+ >>> element.remove(subelement)
+ Traceback (most recent call last):
+ ValueError: list.remove(x): x not in list
+ >>> serialize(ET, element) # 6
+ ''
+ """
+
+def find():
+ """
+ Test find methods (including xpath syntax).
+
+ >>> from xml.etree import ElementTree as ET
+
+ >>> elem = ET.XML(SAMPLE_XML)
+ >>> elem.find("tag").tag
+ 'tag'
+ >>> ET.ElementTree(elem).find("tag").tag
+ 'tag'
+ >>> elem.find("section/tag").tag
+ 'tag'
+ >>> ET.ElementTree(elem).find("section/tag").tag
+ 'tag'
+ >>> elem.findtext("tag")
+ 'text'
+ >>> elem.findtext("tog")
+ >>> elem.findtext("tog", "default")
+ 'default'
+ >>> ET.ElementTree(elem).findtext("tag")
+ 'text'
+ >>> elem.findtext("section/tag")
+ 'subtext'
+ >>> ET.ElementTree(elem).findtext("section/tag")
+ 'subtext'
+ >>> summarize_list(elem.findall("tag"))
+ ['tag', 'tag']
+ >>> summarize_list(elem.findall("*"))
+ ['tag', 'tag', 'section']
+ >>> summarize_list(elem.findall(".//tag"))
+ ['tag', 'tag', 'tag']
+ >>> summarize_list(elem.findall("section/tag"))
+ ['tag']
+ >>> summarize_list(elem.findall("section//tag"))
+ ['tag']
+ >>> summarize_list(elem.findall("section/*"))
+ ['tag']
+ >>> summarize_list(elem.findall("section//*"))
+ ['tag']
+ >>> summarize_list(elem.findall("section/.//*"))
+ ['tag']
+ >>> summarize_list(elem.findall("*/*"))
+ ['tag']
+ >>> summarize_list(elem.findall("*//*"))
+ ['tag']
+ >>> summarize_list(elem.findall("*/tag"))
+ ['tag']
+ >>> summarize_list(elem.findall("*/./tag"))
+ ['tag']
+ >>> summarize_list(elem.findall("./tag"))
+ ['tag', 'tag']
+ >>> summarize_list(elem.findall(".//tag"))
+ ['tag', 'tag', 'tag']
+ >>> summarize_list(elem.findall("././tag"))
+ ['tag', 'tag']
+ >>> summarize_list(ET.ElementTree(elem).findall("/tag"))
+ ['tag', 'tag']
+ >>> summarize_list(ET.ElementTree(elem).findall("./tag"))
+ ['tag', 'tag']
+ >>> elem = ET.XML(SAMPLE_XML_NS)
+ >>> summarize_list(elem.findall("tag"))
+ []
+ >>> summarize_list(elem.findall("{http://effbot.org/ns}tag"))
+ ['{http://effbot.org/ns}tag', '{http://effbot.org/ns}tag']
+ >>> summarize_list(elem.findall(".//{http://effbot.org/ns}tag"))
+ ['{http://effbot.org/ns}tag', '{http://effbot.org/ns}tag', '{http://effbot.org/ns}tag']
+ """
+
+def parseliteral():
+ r"""
+
+ >>> from xml.etree import ElementTree as ET
+
+ >>> element = ET.XML("text")
+ >>> ET.ElementTree(element).write(sys.stdout)
+ text
+ >>> element = ET.fromstring("text")
+ >>> ET.ElementTree(element).write(sys.stdout)
+ text
+ >>> print ET.tostring(element)
+ text
+ >>> print ET.tostring(element, "ascii")
+
+ text
+ >>> _, ids = ET.XMLID("text")
+ >>> len(ids)
+ 0
+ >>> _, ids = ET.XMLID("text")
+ >>> len(ids)
+ 1
+ >>> ids["body"].tag
+ 'body'
+ """
+
+
+def check_encoding(ET, encoding):
+ """
+ >>> from xml.etree import ElementTree as ET
+
+ >>> check_encoding(ET, "ascii")
+ >>> check_encoding(ET, "us-ascii")
+ >>> check_encoding(ET, "iso-8859-1")
+ >>> check_encoding(ET, "iso-8859-15")
+ >>> check_encoding(ET, "cp437")
+ >>> check_encoding(ET, "mac-roman")
+ """
+ ET.XML("" % encoding)
+
+
+#
+# xinclude tests (samples from appendix C of the xinclude specification)
+
+XINCLUDE = {}
+
+XINCLUDE["C1.xml"] = """\
+
+
+ 120 Mz is adequate for an average home user.
+
+
+"""
+
+XINCLUDE["disclaimer.xml"] = """\
+
+
+ The opinions represented herein represent those of the individual
+ and should not be interpreted as official policy endorsed by this
+ organization.
+
+"""
+
+XINCLUDE["C2.xml"] = """\
+
+
+ This document has been accessed
+ times.
+
+"""
+
+XINCLUDE["count.txt"] = "324387"
+
+XINCLUDE["C3.xml"] = """\
+
+
+ The following is the source of the "data.xml" resource:
+
+
+"""
+
+XINCLUDE["data.xml"] = """\
+
+
+
+
+"""
+
+XINCLUDE["C5.xml"] = """\
+
+
+"""
+
+XINCLUDE["default.xml"] = """\
+
+
+ Example.
+
+
+"""
+
+def xinclude_loader(href, parse="xml", encoding=None):
+ try:
+ data = XINCLUDE[href]
+ except KeyError:
+ raise IOError("resource not found")
+ if parse == "xml":
+ from xml.etree.ElementTree import XML
+ return XML(data)
+ return data
+
+def xinclude():
+ r"""
+ Basic inclusion example (XInclude C.1)
+
+ >>> from xml.etree import ElementTree as ET
+ >>> from xml.etree import ElementInclude
+
+ >>> document = xinclude_loader("C1.xml")
+ >>> ElementInclude.include(document, xinclude_loader)
+ >>> print serialize(ET, document) # C1
+
+ 120 Mz is adequate for an average home user.
+
+ The opinions represented herein represent those of the individual
+ and should not be interpreted as official policy endorsed by this
+ organization.
+
+
+
+ Textual inclusion example (XInclude C.2)
+
+ >>> document = xinclude_loader("C2.xml")
+ >>> ElementInclude.include(document, xinclude_loader)
+ >>> print serialize(ET, document) # C2
+
+ This document has been accessed
+ 324387 times.
+
+
+ Textual inclusion of XML example (XInclude C.3)
+
+ >>> document = xinclude_loader("C3.xml")
+ >>> ElementInclude.include(document, xinclude_loader)
+ >>> print serialize(ET, document) # C3
+
+ The following is the source of the "data.xml" resource:
+ <?xml version='1.0'?>
+ <data>
+ <item><![CDATA[Brooks & Shields]]></item>
+ </data>
+
+
+
+ Fallback example (XInclude C.5)
+ Note! Fallback support is not yet implemented
+
+ >>> document = xinclude_loader("C5.xml")
+ >>> ElementInclude.include(document, xinclude_loader)
+ Traceback (most recent call last):
+ IOError: resource not found
+ >>> # print serialize(ET, document) # C5
+
+ """
+
+def test_main():
+ from test import test_xml_etree
+ test_support.run_doctest(test_xml_etree, verbosity=True)
+
+if __name__ == '__main__':
+ test_main()