home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / share / doc / python-libxml2 / examples / readererr.py < prev    next >
Encoding:
Python Source  |  2003-03-27  |  1.2 KB  |  52 lines

  1. #!/usr/bin/python -u
  2. #
  3. # this tests the basic APIs of the XmlTextReader interface
  4. #
  5. import libxml2
  6. import StringIO
  7. import sys
  8.  
  9. # Memory debug specific
  10. libxml2.debugMemory(1)
  11.  
  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
  14. """
  15. err=""
  16. def myErrorHandler(arg,msg,severity,locator):
  17.     global err
  18.     err = err + "%s (%d) %s:%d:%s" % (arg,severity,locator.BaseURI(),locator.LineNumber(),msg)
  19.  
  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:
  25.     pass
  26.  
  27. if err != expect:
  28.     print "error"
  29.     print "received %s" %(err)
  30.     print "expected %s" %(expect)
  31.     sys.exit(1)
  32.  
  33. reader.SetErrorHandler(None,None)
  34. if reader.GetErrorHandler() != (None,None):
  35.     print "GetErrorHandler failed"
  36.     sys.exit(1)
  37.  
  38. #
  39. # cleanup for memory allocation counting
  40. #
  41. del f
  42. del input
  43. del reader
  44.  
  45. # Memory debug specific
  46. libxml2.cleanupParser()
  47. if libxml2.debugMemory(1) == 0:
  48.     print "OK"
  49. else:
  50.     print "Memory leak %d bytes" % (libxml2.debugMemory(1))
  51.     libxml2.dumpMemory()
  52.