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

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:
1.1.1.2 ! misho      14:             raise Exception("Error handler did not receive correct argument")
1.1       misho      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:
1.1.1.2 ! misho      37:     print("error doing DTD validation")
1.1       misho      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:
1.1.1.2 ! misho      45:     print("Error: document supposed to be invalid")
1.1       misho      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:
1.1.1.2 ! misho      55:     print("OK")
1.1       misho      56: else:
1.1.1.2 ! misho      57:     print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
1.1       misho      58:     libxml2.dumpMemory()
                     59: 

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