Annotation of embedaddon/libxml2/python/tests/validDTD.py, revision 1.1.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>