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