Blame python/tests/reader4.py

Packit Service a31ea6
#!/usr/bin/python -u
Packit Service a31ea6
#
Packit Service a31ea6
# this tests the basic APIs of the XmlTextReader interface
Packit Service a31ea6
#
Packit Service a31ea6
import libxml2
Packit Service a31ea6
import sys
Packit Service a31ea6
try:
Packit Service a31ea6
    import StringIO
Packit Service a31ea6
    str_io = StringIO.StringIO
Packit Service a31ea6
except:
Packit Service a31ea6
    import io
Packit Service a31ea6
    str_io = io.StringIO
Packit Service a31ea6
Packit Service a31ea6
# Memory debug specific
Packit Service a31ea6
libxml2.debugMemory(1)
Packit Service a31ea6
Packit Service a31ea6
def tst_reader(s):
Packit Service a31ea6
    f = str_io(s)
Packit Service a31ea6
    input = libxml2.inputBuffer(f)
Packit Service a31ea6
    reader = input.newTextReader("tst")
Packit Service a31ea6
    res = ""
Packit Service a31ea6
    while reader.Read():
Packit Service a31ea6
        res=res + "%s (%s) [%s] %d\n" % (reader.NodeType(),reader.Name(),
Packit Service a31ea6
				      reader.Value(), reader.IsEmptyElement())
Packit Service a31ea6
        if reader.NodeType() == 1: # Element
Packit Service a31ea6
            while reader.MoveToNextAttribute():
Packit Service a31ea6
                res = res + "-- %s (%s) [%s]\n" % (reader.NodeType(),
Packit Service a31ea6
						   reader.Name(),reader.Value())
Packit Service a31ea6
    return res
Packit Service a31ea6
    
Packit Service a31ea6
expect="""1 (test) [None] 0
Packit Service a31ea6
1 (b) [None] 1
Packit Service a31ea6
1 (c) [None] 1
Packit Service a31ea6
15 (test) [None] 0
Packit Service a31ea6
"""
Packit Service a31ea6
Packit Service a31ea6
res = tst_reader("""<test><c/></test>""")
Packit Service a31ea6
Packit Service a31ea6
if res != expect:
Packit Service a31ea6
    print("Did not get the expected error message:")
Packit Service a31ea6
    print(res)
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()