Blame python/tests/pushSAX.py

Packit Service a31ea6
#!/usr/bin/python -u
Packit Service a31ea6
import sys
Packit Service a31ea6
import libxml2
Packit Service a31ea6
Packit Service a31ea6
# Memory debug specific
Packit Service a31ea6
libxml2.debugMemory(1)
Packit Service a31ea6
Packit Service a31ea6
log = ""
Packit Service a31ea6
Packit Service a31ea6
class callback:
Packit Service a31ea6
    def startDocument(self):
Packit Service a31ea6
        global log
Packit Service a31ea6
        log = log + "startDocument:"
Packit Service a31ea6
Packit Service a31ea6
    def endDocument(self):
Packit Service a31ea6
        global log
Packit Service a31ea6
        log = log + "endDocument:"
Packit Service a31ea6
Packit Service a31ea6
    def startElement(self, tag, attrs):
Packit Service a31ea6
        global log
Packit Service a31ea6
        log = log + "startElement %s %s:" % (tag, attrs)
Packit Service a31ea6
Packit Service a31ea6
    def endElement(self, tag):
Packit Service a31ea6
        global log
Packit Service a31ea6
        log = log + "endElement %s:" % (tag)
Packit Service a31ea6
Packit Service a31ea6
    def characters(self, data):
Packit Service a31ea6
        global log
Packit Service a31ea6
        log = log + "characters: %s:" % (data)
Packit Service a31ea6
Packit Service a31ea6
    def warning(self, msg):
Packit Service a31ea6
        global log
Packit Service a31ea6
        log = log + "warning: %s:" % (msg)
Packit Service a31ea6
Packit Service a31ea6
    def error(self, msg):
Packit Service a31ea6
        global log
Packit Service a31ea6
        log = log + "error: %s:" % (msg)
Packit Service a31ea6
Packit Service a31ea6
    def fatalError(self, msg):
Packit Service a31ea6
        global log
Packit Service a31ea6
        log = log + "fatalError: %s:" % (msg)
Packit Service a31ea6
Packit Service a31ea6
handler = callback()
Packit Service a31ea6
Packit Service a31ea6
ctxt = libxml2.createPushParser(handler, "
Packit Service a31ea6
chunk = " url='tst'>b"
Packit Service a31ea6
ctxt.parseChunk(chunk, len(chunk), 0)
Packit Service a31ea6
chunk = "ar</foo>"
Packit Service a31ea6
ctxt.parseChunk(chunk, len(chunk), 1)
Packit Service a31ea6
ctxt=None
Packit Service a31ea6
Packit Service a31ea6
reference = "startDocument:startElement foo {'url': 'tst'}:characters: bar:endElement foo:endDocument:"
Packit Service a31ea6
if log != reference:
Packit Service a31ea6
    print("Error got: %s" % log)
Packit Service a31ea6
    print("Exprected: %s" % reference)
Packit Service a31ea6
    sys.exit(1)
Packit Service a31ea6
Packit Service a31ea6
# Memory debug specific
Packit Service a31ea6
libxml2.cleanupParser()
Packit Service a31ea6
if libxml2.debugMemory(1) == 0:
Packit Service a31ea6
    print("OK")
Packit Service a31ea6
else:
Packit Service a31ea6
    print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
Packit Service a31ea6
    libxml2.dumpMemory()