3 # this tests the basic APIs of the XmlTextReader interface
9 # Memory debug specific
10 libxml2
.debugMemory(1)
12 expect
="""--> (3) test1:1:xmlns: URI foo is not absolute
13 --> (4) test1:1:Opening and ending tag mismatch: c line 0 and a
16 def myErrorHandler(arg
,msg
,severity
,locator
):
18 err
= err
+ "%s (%d) %s:%d:%s" % (arg
,severity
,locator
.BaseURI(),locator
.LineNumber(),msg
)
20 f
= StringIO
.StringIO("""<a xmlns="foo"><b b1="b1"/><c>content of c</a>""")
21 input = libxml2
.inputBuffer(f
)
22 reader
= input.newTextReader("test1")
23 reader
.SetErrorHandler(myErrorHandler
,"-->")
24 while reader
.Read() == 1:
29 print "received %s" %(err)
30 print "expected %s" %(expect)
33 reader
.SetErrorHandler(None,None)
34 if reader
.GetErrorHandler() != (None,None):
35 print "GetErrorHandler failed"
39 # cleanup for memory allocation counting
45 # Memory debug specific
46 libxml2
.cleanupParser()
47 if libxml2
.debugMemory(1) == 0:
50 print "Memory leak %d bytes" % (libxml2
.debugMemory(1))