2022-12-06 21:40:01 +00:00
#!/usr/bin/env python3
2003-01-17 10:48:04 +00:00
#
# this tests the basic APIs of the XmlTextReader interface
#
2023-08-15 12:49:27 +02:00
import setup_test
2003-01-17 10:48:04 +00:00
import libxml2
import sys
2013-03-30 21:38:20 +08:00
try :
import StringIO
str_io = StringIO . StringIO
except :
import io
str_io = io . StringIO
2003-01-17 10:48:04 +00:00
# Memory debug specific
libxml2 . debugMemory ( 1 )
expect = """ --> (3) test1:1:xmlns: URI foo is not absolute
2009-08-24 11:59:07 +02:00
- - > ( 4 ) test1 : 1 : Opening and ending tag mismatch : c line 1 and a
2003-01-17 10:48:04 +00:00
"""
err = " "
2003-01-20 21:26:34 +00:00
def myErrorHandler ( arg , msg , severity , locator ) :
2003-01-17 10:48:04 +00:00
global err
2003-01-20 21:26:34 +00:00
err = err + " %s ( %d ) %s : %d : %s " % ( arg , severity , locator . BaseURI ( ) , locator . LineNumber ( ) , msg )
2003-01-17 10:48:04 +00:00
2013-03-30 21:38:20 +08:00
f = str_io ( """ <a xmlns= " foo " ><b b1= " b1 " /><c>content of c</a> """ )
2003-01-17 10:48:04 +00:00
input = libxml2 . inputBuffer ( f )
reader = input . newTextReader ( " test1 " )
2003-01-20 21:26:34 +00:00
reader . SetErrorHandler ( myErrorHandler , " --> " )
2003-01-17 10:48:04 +00:00
while reader . Read ( ) == 1 :
pass
if err != expect :
2013-03-30 21:38:20 +08:00
print ( " error " )
print ( " received %s " % ( err ) )
print ( " expected %s " % ( expect ) )
2003-01-17 10:48:04 +00:00
sys . exit ( 1 )
2003-01-20 21:26:34 +00:00
reader . SetErrorHandler ( None , None )
if reader . GetErrorHandler ( ) != ( None , None ) :
2013-03-30 21:38:20 +08:00
print ( " GetErrorHandler failed " )
2003-01-17 10:48:04 +00:00
sys . exit ( 1 )
#
# cleanup for memory allocation counting
#
del f
del input
del reader
# Memory debug specific
libxml2 . cleanupParser ( )
if libxml2 . debugMemory ( 1 ) == 0 :
2013-03-30 21:38:20 +08:00
print ( " OK " )
2003-01-17 10:48:04 +00:00
else :
2013-03-30 21:38:20 +08:00
print ( " Memory leak %d bytes " % ( libxml2 . debugMemory ( 1 ) ) )