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 / error.py < prev    next >
Encoding:
Python Source  |  2004-02-23  |  1.0 KB  |  52 lines

  1. #!/usr/bin/python -u
  2. #
  3. # This test exercise the redirection of error messages with a
  4. # functions defined in Python.
  5. #
  6. import sys
  7. import libxml2
  8.  
  9. # Memory debug specific
  10. libxml2.debugMemory(1)
  11.  
  12. expect='--> I/O --> warning : --> failed to load external entity "missing.xml"\n'
  13. err=""
  14. def callback(ctx, str):
  15.      global err
  16.  
  17.      err = err + "%s %s" % (ctx, str)
  18.  
  19. got_exc = 0
  20. libxml2.registerErrorHandler(callback, "-->")
  21. try:
  22.     doc = libxml2.parseFile("missing.xml")
  23. except libxml2.parserError:
  24.     got_exc = 1
  25.  
  26. if got_exc == 0:
  27.     print "Failed to get a parser exception"
  28.     sys.exit(1)
  29.  
  30. if err != expect:
  31.     print "error"
  32.     print "received %s" %(err)
  33.     print "expected %s" %(expect)
  34.     sys.exit(1)
  35.  
  36. i = 10000
  37. while i > 0:
  38.     try:
  39.         doc = libxml2.parseFile("missing.xml")
  40.     except libxml2.parserError:
  41.         got_exc = 1
  42.     err = ""
  43.     i = i - 1
  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.