Annotation of embedaddon/libxml2/python/tests/validDTD.py, revision 1.1

1.1     ! misho       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>