File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / python / tests / validDTD.py
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:53:34 2014 UTC (10 years, 5 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, HEAD
libxml2 2.9.1

    1: #!/usr/bin/python -u
    2: import libxml2
    3: import sys
    4: 
    5: ARG = 'test string'
    6: 
    7: class ErrorHandler:
    8: 
    9:     def __init__(self):
   10:         self.errors = []
   11: 
   12:     def handler(self, msg, data):
   13:         if data != ARG:
   14:             raise Exception("Error handler did not receive correct argument")
   15:         self.errors.append(msg)
   16: 
   17: 
   18: # Memory debug specific
   19: libxml2.debugMemory(1)
   20: 
   21: dtd="""<!ELEMENT foo EMPTY>"""
   22: valid="""<?xml version="1.0"?>
   23: <foo></foo>"""
   24: 
   25: invalid="""<?xml version="1.0"?>
   26: <foo><bar/></foo>"""
   27: 
   28: dtd = libxml2.parseDTD(None, 'test.dtd')
   29: ctxt = libxml2.newValidCtxt()
   30: e = ErrorHandler()
   31: ctxt.setValidityErrorHandler(e.handler, e.handler, ARG)
   32: 
   33: # Test valid document
   34: doc = libxml2.parseDoc(valid)
   35: ret = doc.validateDtd(ctxt, dtd)
   36: if ret != 1 or e.errors:
   37:     print("error doing DTD validation")
   38:     sys.exit(1)
   39: doc.freeDoc()
   40: 
   41: # Test invalid document
   42: doc = libxml2.parseDoc(invalid)
   43: ret = doc.validateDtd(ctxt, dtd)
   44: if ret != 0 or not e.errors:
   45:     print("Error: document supposed to be invalid")
   46: doc.freeDoc()
   47: 
   48: dtd.freeDtd()
   49: del dtd
   50: del ctxt
   51: 
   52: # Memory debug specific
   53: libxml2.cleanupParser()
   54: if libxml2.debugMemory(1) == 0:
   55:     print("OK")
   56: else:
   57:     print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
   58:     libxml2.dumpMemory()
   59: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>