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()
|