symbian-qemu-0.9.1-12/python-2.6.1/Lib/test/test_xml_etree_c.py
changeset 1 2fb8b9db1c86
--- /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_c.py	Fri Jul 31 15:01:17 2009 +0100
@@ -0,0 +1,224 @@
+# xml.etree test for cElementTree
+
+import doctest
+import sys
+
+from test import test_support
+
+from xml.etree import cElementTree as ET
+
+SAMPLE_XML = """
+<body>
+  <tag>text</tag>
+  <tag />
+  <section>
+    <tag>subtext</tag>
+  </section>
+</body>
+"""
+
+SAMPLE_XML_NS = """
+<body xmlns="http://effbot.org/ns">
+  <tag>text</tag>
+  <tag />
+  <section>
+    <tag>subtext</tag>
+  </section>
+</body>
+"""
+
+def sanity():
+    """
+    Import sanity.
+
+    >>> from xml.etree import cElementTree
+    """
+
+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.
+
+    >>> 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
+    '<tag key="value" />'
+    >>> subelement = ET.Element("subtag")
+    >>> element.append(subelement)
+    >>> serialize(ET, element) #  2
+    '<tag key="value"><subtag /></tag>'
+    >>> element.insert(0, subelement)
+    >>> serialize(ET, element) # 3
+    '<tag key="value"><subtag /><subtag /></tag>'
+    >>> element.remove(subelement)
+    >>> serialize(ET, element) # 4
+    '<tag key="value"><subtag /></tag>'
+    >>> element.remove(subelement)
+    >>> serialize(ET, element) # 5
+    '<tag key="value" />'
+    >>> element.remove(subelement)
+    Traceback (most recent call last):
+    ValueError: list.remove(x): x not in list
+    >>> serialize(ET, element) # 6
+    '<tag key="value" />'
+    """
+
+def find():
+    """
+    Test find methods (including xpath syntax).
+
+    >>> 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"""
+
+    >>> element = ET.XML("<html><body>text</body></html>")
+    >>> ET.ElementTree(element).write(sys.stdout)
+    <html><body>text</body></html>
+    >>> element = ET.fromstring("<html><body>text</body></html>")
+    >>> ET.ElementTree(element).write(sys.stdout)
+    <html><body>text</body></html>
+    >>> print ET.tostring(element)
+    <html><body>text</body></html>
+    >>> print ET.tostring(element, "ascii")
+    <?xml version='1.0' encoding='ascii'?>
+    <html><body>text</body></html>
+    >>> _, ids = ET.XMLID("<html><body>text</body></html>")
+    >>> len(ids)
+    0
+    >>> _, ids = ET.XMLID("<html><body id='body'>text</body></html>")
+    >>> len(ids)
+    1
+    >>> ids["body"].tag
+    'body'
+    """
+
+def check_encoding(encoding):
+    """
+    >>> check_encoding("ascii")
+    >>> check_encoding("us-ascii")
+    >>> check_encoding("iso-8859-1")
+    >>> check_encoding("iso-8859-15")
+    >>> check_encoding("cp437")
+    >>> check_encoding("mac-roman")
+    """
+    ET.XML(
+        "<?xml version='1.0' encoding='%s'?><xml />" % encoding
+        )
+
+def bug_1534630():
+    """
+    >>> bob = ET.TreeBuilder()
+    >>> e = bob.data("data")
+    >>> e = bob.start("tag", {})
+    >>> e = bob.end("tag")
+    >>> e = bob.close()
+    >>> serialize(ET, e)
+    '<tag />'
+    """
+
+def test_main():
+    from test import test_xml_etree_c
+    test_support.run_doctest(test_xml_etree_c, verbosity=True)
+
+if __name__ == '__main__':
+    test_main()