~ubuntu-branches/ubuntu/wily/opencollada/wily-proposed

« back to all changes in this revision

Viewing changes to Externals/LibXML/python/tests/walker.py

  • Committer: Package Import Robot
  • Author(s): Matteo F. Vescovi
  • Date: 2015-05-14 17:23:27 UTC
  • Revision ID: package-import@ubuntu.com-20150514172327-f862u8envms01fra
Tags: upstream-0.1.0~20140703.ddf8f47+dfsg1
ImportĀ upstreamĀ versionĀ 0.1.0~20140703.ddf8f47+dfsg1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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
doc = libxml2.parseDoc(docstr)
 
41
reader = doc.readerWalker();
 
42
ret = reader.Read()
 
43
while ret == 1:
 
44
    processNode(reader)
 
45
    ret = reader.Read()
 
46
 
 
47
if ret != 0:
 
48
    print "Error parsing the document test1"
 
49
    sys.exit(1)
 
50
 
 
51
if result != expect:
 
52
    print "Unexpected result for test1"
 
53
    print result
 
54
    sys.exit(1)
 
55
 
 
56
doc.freeDoc()
 
57
 
 
58
#
 
59
# Reuse the reader for another document testing the ReaderNewWalker API
 
60
#
 
61
docstr="""<foo>
 
62
<label>some text</label>
 
63
<item>1000</item>
 
64
</foo>"""
 
65
expect="""0 1 foo 0
 
66
1 14 #text 0
 
67
1 1 label 0
 
68
2 3 #text 0
 
69
1 15 label 0
 
70
1 14 #text 0
 
71
1 1 item 0
 
72
2 3 #text 0
 
73
1 15 item 0
 
74
1 14 #text 0
 
75
0 15 foo 0
 
76
"""
 
77
result = ""
 
78
 
 
79
doc = libxml2.parseDoc(docstr)
 
80
reader.NewWalker(doc)
 
81
 
 
82
ret = reader.Read()
 
83
while ret == 1:
 
84
    processNode(reader)
 
85
    ret = reader.Read()
 
86
 
 
87
if ret != 0:
 
88
    print "Error parsing the document test2"
 
89
    sys.exit(1)
 
90
 
 
91
if result != expect:
 
92
    print "Unexpected result for test2"
 
93
    print result
 
94
    sys.exit(1)
 
95
 
 
96
doc.freeDoc()
 
97
 
 
98
#
 
99
# Reuse the reader for another document testing the ReaderNewxxx API
 
100
#
 
101
docstr="""<foo>
 
102
<label>some text</label>
 
103
<item>1000</item>
 
104
</foo>"""
 
105
expect="""0 1 foo 0
 
106
1 14 #text 0
 
107
1 1 label 0
 
108
2 3 #text 0
 
109
1 15 label 0
 
110
1 14 #text 0
 
111
1 1 item 0
 
112
2 3 #text 0
 
113
1 15 item 0
 
114
1 14 #text 0
 
115
0 15 foo 0
 
116
"""
 
117
result = ""
 
118
 
 
119
reader.NewDoc(docstr, "test3", None, 0)
 
120
ret = reader.Read()
 
121
while ret == 1:
 
122
    processNode(reader)
 
123
    ret = reader.Read()
 
124
 
 
125
if ret != 0:
 
126
    print "Error parsing the document test3"
 
127
    sys.exit(1)
 
128
 
 
129
if result != expect:
 
130
    print "Unexpected result for test3"
 
131
    print result
 
132
    sys.exit(1)
 
133
 
 
134
#
 
135
# cleanup
 
136
#
 
137
del reader
 
138
 
 
139
# Memory debug specific
 
140
libxml2.cleanupParser()
 
141
if libxml2.debugMemory(1) == 0:
 
142
    print "OK"
 
143
else:
 
144
    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
 
145
    libxml2.dumpMemory()