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

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([]):
        !            30:     print "Failed to return a nodeset"
        !            31:     sys.exit(1)
        !            32: if len(res) != 1:
        !            33:     print "Unexpected nodeset size"
        !            34:     sys.exit(1)
        !            35: node = res[0]
        !            36: if node.name != 'p':
        !            37:     print "Unexpected nodeset element result"
        !            38:     sys.exit(1)
        !            39: node = node.children
        !            40: if node.type != 'text':
        !            41:     print "Unexpected nodeset element children type"
        !            42:     sys.exit(1)
        !            43: if node.content != 'hello':
        !            44:     print "Unexpected nodeset element children content"
        !            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:
        !            54:     print "OK"
        !            55: else:
        !            56:     print "Memory leak %d bytes" % (libxml2.debugMemory(1))
        !            57:     libxml2.dumpMemory()

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