patch from Stéphane Bidoul for better per context error message APIs
* xmlreader.c python/drv_libxml2.py python/generator.py
python/libxml.c python/libxml.py python/libxml_wrap.h
python/types.c: patch from Stéphane Bidoul for better per
context error message APIs
* python/tests/ctxterror.py python/tests/readererr.py:
update of the tests
Daniel
diff --git a/python/tests/ctxterror.py b/python/tests/ctxterror.py
index 44589cd..265bb1e 100755
--- a/python/tests/ctxterror.py
+++ b/python/tests/ctxterror.py
@@ -9,20 +9,22 @@
# Memory debug specific
libxml2.debugMemory(1)
-expect="""--> Opening and ending tag mismatch: x and y
+expect="""--> (3) xmlns: URI foo is not absolute
+--> (4) Opening and ending tag mismatch: x and y
"""
err=""
-def callback(ctx, str):
- global err
+def callback(arg,msg,severity,reserved):
+ global err
+ err = err + "%s (%d) %s" % (arg,severity,msg)
- err = err + "%s %s" % (ctx, str)
-
-s = """<x></y>"""
+s = """<x xmlns="foo"></y>"""
parserCtxt = libxml2.createPushParser(None,"",0,"test.xml")
-parserCtxt.registerErrorHandler(callback, "-->")
-parserCtxt.registerWarningHandler(callback, "-->")
+parserCtxt.setErrorHandler(callback, "-->")
+if parserCtxt.getErrorHandler() != (callback,"-->"):
+ print "getErrorHandler failed"
+ sys.exit(1)
parserCtxt.parseChunk(s,len(s),1)
doc = parserCtxt.doc()
doc.freeDoc()
@@ -37,8 +39,7 @@
i = 10000
while i > 0:
parserCtxt = libxml2.createPushParser(None,"",0,"test.xml")
- parserCtxt.registerErrorHandler(callback, "-->")
- parserCtxt.registerWarningHandler(callback, "-->")
+ parserCtxt.setErrorHandler(callback, "-->")
parserCtxt.parseChunk(s,len(s),1)
doc = parserCtxt.doc()
doc.freeDoc()
diff --git a/python/tests/readererr.py b/python/tests/readererr.py
index abbbba5..dbdeb47 100644
--- a/python/tests/readererr.py
+++ b/python/tests/readererr.py
@@ -13,14 +13,14 @@
--> (4) test1:1:Opening and ending tag mismatch: c and a
"""
err=""
-def myErrorHandler(arg,msg,line,col,URI,severity):
+def myErrorHandler(arg,msg,severity,locator):
global err
- err = err + "%s (%d) %s:%d:%s" % (arg,severity,URI,line,msg)
+ err = err + "%s (%d) %s:%d:%s" % (arg,severity,locator.BaseURI(),locator.LineNumber(),msg)
f = StringIO.StringIO("""<a xmlns="foo"><b b1="b1"/><c>content of c</a>""")
input = libxml2.inputBuffer(f)
reader = input.newTextReader("test1")
-reader.setErrorHandler(myErrorHandler,"-->")
+reader.SetErrorHandler(myErrorHandler,"-->")
while reader.Read() == 1:
pass
@@ -30,9 +30,9 @@
print "expected %s" %(expect)
sys.exit(1)
-reader.setErrorHandler(None,None)
-if reader.getErrorHandler() != (None,None):
- print "getErrorHandler failed"
+reader.SetErrorHandler(None,None)
+if reader.GetErrorHandler() != (None,None):
+ print "GetErrorHandler failed"
sys.exit(1)
#