Annotation of embedaddon/libxml2/python/tests/reader7.py, revision 1.1.1.2
1.1 misho 1: #!/usr/bin/python -u
2: #
3: # this tests the entities substitutions with the XmlTextReader interface
4: #
5: import sys
6: import libxml2
7:
8: # Memory debug specific
9: libxml2.debugMemory(1)
10:
11: result = ""
12: def processNode(reader):
13: global result
14:
15: result = result + "%d %d %s %d\n" % (reader.Depth(), reader.NodeType(),
16: reader.Name(), reader.IsEmptyElement())
17:
18: #
19: # Parse a document testing the readerForxxx API
20: #
21: docstr="""<foo>
22: <label>some text</label>
23: <item>100</item>
24: </foo>"""
25: expect="""0 1 foo 0
26: 1 14 #text 0
27: 1 1 label 0
28: 2 3 #text 0
29: 1 15 label 0
30: 1 14 #text 0
31: 1 1 item 0
32: 2 3 #text 0
33: 1 15 item 0
34: 1 14 #text 0
35: 0 15 foo 0
36: """
37: result = ""
38:
39: reader = libxml2.readerForDoc(docstr, "test1", None, 0)
40: ret = reader.Read()
41: while ret == 1:
42: processNode(reader)
43: ret = reader.Read()
44:
45: if ret != 0:
1.1.1.2 ! misho 46: print("Error parsing the document test1")
1.1 misho 47: sys.exit(1)
48:
49: if result != expect:
1.1.1.2 ! misho 50: print("Unexpected result for test1")
! 51: print(result)
1.1 misho 52: sys.exit(1)
53:
54: #
55: # Reuse the reader for another document testing the ReaderNewxxx API
56: #
57: docstr="""<foo>
58: <label>some text</label>
59: <item>1000</item>
60: </foo>"""
61: expect="""0 1 foo 0
62: 1 14 #text 0
63: 1 1 label 0
64: 2 3 #text 0
65: 1 15 label 0
66: 1 14 #text 0
67: 1 1 item 0
68: 2 3 #text 0
69: 1 15 item 0
70: 1 14 #text 0
71: 0 15 foo 0
72: """
73: result = ""
74:
75: reader.NewDoc(docstr, "test2", None, 0)
76: ret = reader.Read()
77: while ret == 1:
78: processNode(reader)
79: ret = reader.Read()
80:
81: if ret != 0:
1.1.1.2 ! misho 82: print("Error parsing the document test2")
1.1 misho 83: sys.exit(1)
84:
85: if result != expect:
1.1.1.2 ! misho 86: print("Unexpected result for test2")
! 87: print(result)
1.1 misho 88: sys.exit(1)
89:
90: #
91: # cleanup
92: #
93: del reader
94:
95: # Memory debug specific
96: libxml2.cleanupParser()
97: if libxml2.debugMemory(1) == 0:
1.1.1.2 ! misho 98: print("OK")
1.1 misho 99: else:
1.1.1.2 ! misho 100: print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
1.1 misho 101: libxml2.dumpMemory()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>