Annotation of embedaddon/libxml2/python/tests/xpathret.py, revision 1.1.1.2

1.1       misho       1: #!/usr/bin/python -u
                      2: import sys
                      3: import libxml2
                      4: 
                      5: #memory debug specific
                      6: libxml2.debugMemory(1)
                      7: 
                      8: #
                      9: # A document hosting the nodes returned from the extension function
                     10: #
                     11: mydoc = libxml2.newDoc("1.0")
                     12: 
                     13: def foo(ctx, str):
                     14:     global mydoc
                     15: 
                     16:     #
                     17:     # test returning a node set works as expected
                     18:     #
                     19:     parent = mydoc.newDocNode(None, 'p', None)
                     20:     mydoc.addChild(parent)
                     21:     node = mydoc.newDocText(str)
                     22:     parent.addChild(node)
                     23:     return [parent]
                     24: 
                     25: doc = libxml2.parseFile("tst.xml")
                     26: ctxt = doc.xpathNewContext()
                     27: libxml2.registerXPathFunction(ctxt._o, "foo", None, foo)
                     28: res = ctxt.xpathEval("foo('hello')")
                     29: if type(res) != type([]):
1.1.1.2 ! misho      30:     print("Failed to return a nodeset")
1.1       misho      31:     sys.exit(1)
                     32: if len(res) != 1:
1.1.1.2 ! misho      33:     print("Unexpected nodeset size")
1.1       misho      34:     sys.exit(1)
                     35: node = res[0]
                     36: if node.name != 'p':
1.1.1.2 ! misho      37:     print("Unexpected nodeset element result")
1.1       misho      38:     sys.exit(1)
                     39: node = node.children
                     40: if node.type != 'text':
1.1.1.2 ! misho      41:     print("Unexpected nodeset element children type")
1.1       misho      42:     sys.exit(1)
                     43: if node.content != 'hello':
1.1.1.2 ! misho      44:     print("Unexpected nodeset element children content")
1.1       misho      45:     sys.exit(1)
                     46: 
                     47: doc.freeDoc()
                     48: mydoc.freeDoc()
                     49: ctxt.xpathFreeContext()
                     50: 
                     51: #memory debug specific
                     52: libxml2.cleanupParser()
                     53: if libxml2.debugMemory(1) == 0:
1.1.1.2 ! misho      54:     print("OK")
1.1       misho      55: else:
1.1.1.2 ! misho      56:     print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
1.1       misho      57:     libxml2.dumpMemory()

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>