2 # -*- coding: ISO-8859-1 -*-
4 # this tests the next API of the XmlTextReader interface
10 str_io = StringIO.StringIO
15 # Memory debug specific
16 libxml2.debugMemory(1)
18 f = str_io("""<a><b><c /></b><d>content of d</d></a>""")
19 input = libxml2.inputBuffer(f)
20 reader = input.newTextReader("test_next")
23 print("test_next: Error reading to first element")
25 if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \
26 reader.NodeType() != 1 or reader.HasAttributes() != 0:
27 print("test_next: Error reading the first element")
31 print("test_next: Error reading to second element")
33 if reader.Name() != "b" or reader.IsEmptyElement() != 0 or \
34 reader.NodeType() != 1 or reader.HasAttributes() != 0:
35 print("test_next: Error reading the second element")
39 print("test_next: Error reading to third element")
41 if reader.Name() != "c" or reader.NodeType() != 1 or \
42 reader.HasAttributes() != 0:
43 print("test_next: Error reading the third element")
47 print("test_next: Error reading to end of third element")
49 if reader.Name() != "b" or reader.NodeType() != 15:
50 print("test_next: Error reading to end of second element")
54 print("test_next: Error moving to third element")
56 if reader.Name() != "d" or reader.IsEmptyElement() != 0 or \
57 reader.NodeType() != 1 or reader.HasAttributes() != 0:
58 print("test_next: Error reading third element")
62 print("test_next: Error reading to end of first element")
64 if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \
65 reader.NodeType() != 15 or reader.HasAttributes() != 0:
66 print("test_next: Error reading the end of first element")
70 print("test_next: Error reading to end of document")
74 # cleanup for memory allocation counting
80 # Memory debug specific
81 libxml2.cleanupParser()
82 if libxml2.debugMemory(1) == 0:
85 print("Memory leak %d bytes" % (libxml2.debugMemory(1)))