5 # Memory debug specific
11 def startDocument(self
):
13 log
= log
+ "startDocument:"
15 def endDocument(self
):
17 log
= log
+ "endDocument:"
19 def startElement(self
, tag
, attrs
):
21 log
= log
+ "startElement %s %s:" % (tag
, attrs
)
23 def endElement(self
, tag
):
25 log
= log
+ "endElement %s:" % (tag
)
27 def characters(self
, data
):
29 log
= log
+ "characters: %s:" % (data
)
31 def warning(self
, msg
):
33 log
= log
+ "warning: %s:" % (msg
)
37 log
= log
+ "error: %s:" % (msg
)
39 def fatalError(self
, msg
):
41 log
= log
+ "fatalError: %s:" % (msg
)
46 chunk
="""<foo><bar2/>"""
47 ctxt
= libxml2
.createPushParser(handler
, None, 0, "test.xml")
48 ctxt
.parseChunk(chunk
, len(chunk
), 0)
51 reference
= "startDocument:startElement foo None:startElement bar2 None:endElement bar2:"
53 print("Error got: %s" % log
)
54 print("Exprected: %s" % reference
)
58 chunk
="""<foo><bar2></bar2>"""
59 ctxt
= libxml2
.createPushParser(handler
, None, 0, "test.xml")
60 ctxt
.parseChunk(chunk
, len(chunk
), 0)
63 reference
= "startDocument:startElement foo None:startElement bar2 None:endElement bar2:"
65 print("Error got: %s" % log
)
66 print("Exprected: %s" % reference
)
70 chunk
="""<foo><bar2>"""
71 ctxt
= libxml2
.createPushParser(handler
, None, 0, "test.xml")
72 ctxt
.parseChunk(chunk
, len(chunk
), 0)
75 reference
= "startDocument:startElement foo None:startElement bar2 None:"
77 print("Error got: %s" % log
)
78 print("Exprected: %s" % reference
)
82 chunk
="""<foo><bar2 a="1" b='2' />"""
83 ctxt
= libxml2
.createPushParser(handler
, None, 0, "test.xml")
84 ctxt
.parseChunk(chunk
, len(chunk
), 0)
87 reference
= "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:endElement bar2:"
89 print("Error got: %s" % log
)
90 print("Exprected: %s" % reference
)
94 chunk
="""<foo><bar2 a="1" b='2' >"""
95 ctxt
= libxml2
.createPushParser(handler
, None, 0, "test.xml")
96 ctxt
.parseChunk(chunk
, len(chunk
), 0)
99 reference
= "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:"
101 print("Error got: %s" % log
)
102 print("Exprected: %s" % reference
)
106 chunk
="""<foo><bar2 a="1" b='2' ></bar2>"""
107 ctxt
= libxml2
.createPushParser(handler
, None, 0, "test.xml")
108 ctxt
.parseChunk(chunk
, len(chunk
), 0)
111 reference
= "startDocument:startElement foo None:startElement bar2 {'a': '1', 'b': '2'}:endElement bar2:"
113 print("Error got: %s" % log
)
114 print("Exprected: %s" % reference
)
118 chunk
="""<foo><bar2 a="b='1' />"""
119 ctxt
= libxml2
.createPushParser(handler
, None, 0, "test.xml")
120 ctxt
.parseChunk(chunk
, len(chunk
), 0)
123 reference
= "startDocument:startElement foo None:"
125 print("Error got: %s" % log
)
126 print("Exprected: %s" % reference
)
129 # Memory debug specific
130 libxml2
.cleanupParser()
131 if libxml2
.debugMemory(1) == 0:
134 print("Memory leak %d bytes" % (libxml2
.debugMemory(1)))