Blame python/tests/readererr.py

Packit 423ecb
#!/usr/bin/python -u
Packit 423ecb
#
Packit 423ecb
# this tests the basic APIs of the XmlTextReader interface
Packit 423ecb
#
Packit 423ecb
import libxml2
Packit 423ecb
import sys
Packit 423ecb
try:
Packit 423ecb
    import StringIO
Packit 423ecb
    str_io = StringIO.StringIO
Packit 423ecb
except:
Packit 423ecb
    import io
Packit 423ecb
    str_io = io.StringIO
Packit 423ecb
Packit 423ecb
# Memory debug specific
Packit 423ecb
libxml2.debugMemory(1)
Packit 423ecb
Packit 423ecb
expect="""--> (3) test1:1:xmlns: URI foo is not absolute
Packit 423ecb
--> (4) test1:1:Opening and ending tag mismatch: c line 1 and a
Packit 423ecb
"""
Packit 423ecb
err=""
Packit 423ecb
def myErrorHandler(arg,msg,severity,locator):
Packit 423ecb
    global err
Packit 423ecb
    err = err + "%s (%d) %s:%d:%s" % (arg,severity,locator.BaseURI(),locator.LineNumber(),msg)
Packit 423ecb
Packit 423ecb
f = str_io("""<c>content of c""")
Packit 423ecb
input = libxml2.inputBuffer(f)
Packit 423ecb
reader = input.newTextReader("test1")
Packit 423ecb
reader.SetErrorHandler(myErrorHandler,"-->")
Packit 423ecb
while reader.Read() == 1:
Packit 423ecb
    pass
Packit 423ecb
Packit 423ecb
if err != expect:
Packit 423ecb
    print("error")
Packit 423ecb
    print("received %s" %(err))
Packit 423ecb
    print("expected %s" %(expect))
Packit 423ecb
    sys.exit(1)
Packit 423ecb
Packit 423ecb
reader.SetErrorHandler(None,None)
Packit 423ecb
if reader.GetErrorHandler() != (None,None):
Packit 423ecb
    print("GetErrorHandler failed")
Packit 423ecb
    sys.exit(1)
Packit 423ecb
Packit 423ecb
#
Packit 423ecb
# cleanup for memory allocation counting
Packit 423ecb
#
Packit 423ecb
del f
Packit 423ecb
del input
Packit 423ecb
del reader
Packit 423ecb
Packit 423ecb
# Memory debug specific
Packit 423ecb
libxml2.cleanupParser()
Packit 423ecb
if libxml2.debugMemory(1) == 0:
Packit 423ecb
    print("OK")
Packit 423ecb
else:
Packit 423ecb
    print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
Packit 423ecb
    libxml2.dumpMemory()