Annotation of embedaddon/libxml2/python/tests/readernext.py, revision 1.1.1.2
1.1 misho 1: #!/usr/bin/python -u
2: # -*- coding: ISO-8859-1 -*-
3: #
4: # this tests the next API of the XmlTextReader interface
5: #
6: import libxml2
7: import sys
1.1.1.2 ! misho 8: try:
! 9: import StringIO
! 10: str_io = StringIO.StringIO
! 11: except:
! 12: import io
! 13: str_io = io.StringIO
1.1 misho 14:
15: # Memory debug specific
16: libxml2.debugMemory(1)
17:
1.1.1.2 ! misho 18: f = str_io("""<a><b><c /></b><d>content of d</d></a>""")
1.1 misho 19: input = libxml2.inputBuffer(f)
20: reader = input.newTextReader("test_next")
21: ret = reader.Read()
22: if ret != 1:
1.1.1.2 ! misho 23: print("test_next: Error reading to first element")
1.1 misho 24: sys.exit(1)
25: if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \
26: reader.NodeType() != 1 or reader.HasAttributes() != 0:
1.1.1.2 ! misho 27: print("test_next: Error reading the first element")
1.1 misho 28: sys.exit(1)
29: ret = reader.Read()
30: if ret != 1:
1.1.1.2 ! misho 31: print("test_next: Error reading to second element")
1.1 misho 32: sys.exit(1)
33: if reader.Name() != "b" or reader.IsEmptyElement() != 0 or \
34: reader.NodeType() != 1 or reader.HasAttributes() != 0:
1.1.1.2 ! misho 35: print("test_next: Error reading the second element")
1.1 misho 36: sys.exit(1)
37: ret = reader.Read()
38: if ret != 1:
1.1.1.2 ! misho 39: print("test_next: Error reading to third element")
1.1 misho 40: sys.exit(1)
41: if reader.Name() != "c" or reader.NodeType() != 1 or \
42: reader.HasAttributes() != 0:
1.1.1.2 ! misho 43: print("test_next: Error reading the third element")
1.1 misho 44: sys.exit(1)
45: ret = reader.Read()
46: if ret != 1:
1.1.1.2 ! misho 47: print("test_next: Error reading to end of third element")
1.1 misho 48: sys.exit(1)
49: if reader.Name() != "b" or reader.NodeType() != 15:
1.1.1.2 ! misho 50: print("test_next: Error reading to end of second element")
1.1 misho 51: sys.exit(1)
52: ret = reader.Next()
53: if ret != 1:
1.1.1.2 ! misho 54: print("test_next: Error moving to third element")
1.1 misho 55: sys.exit(1)
56: if reader.Name() != "d" or reader.IsEmptyElement() != 0 or \
57: reader.NodeType() != 1 or reader.HasAttributes() != 0:
1.1.1.2 ! misho 58: print("test_next: Error reading third element")
1.1 misho 59: sys.exit(1)
60: ret = reader.Next()
61: if ret != 1:
1.1.1.2 ! misho 62: print("test_next: Error reading to end of first element")
1.1 misho 63: sys.exit(1)
64: if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \
65: reader.NodeType() != 15 or reader.HasAttributes() != 0:
1.1.1.2 ! misho 66: print("test_next: Error reading the end of first element")
1.1 misho 67: sys.exit(1)
68: ret = reader.Read()
69: if ret != 0:
1.1.1.2 ! misho 70: print("test_next: Error reading to end of document")
1.1 misho 71: sys.exit(1)
72:
73: #
74: # cleanup for memory allocation counting
75: #
76: del f
77: del input
78: del reader
79:
80: # Memory debug specific
81: libxml2.cleanupParser()
82: if libxml2.debugMemory(1) == 0:
1.1.1.2 ! misho 83: print("OK")
1.1 misho 84: else:
1.1.1.2 ! misho 85: print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
1.1 misho 86: libxml2.dumpMemory()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>