Annotation of embedaddon/libxml2/python/tests/walker.py, revision 1.1
1.1 ! misho 1: #!/usr/bin/python -u
! 2: #
! 3: # this tests the entities substitutions with the XmlTextReader interface
! 4: #
! 5: import sys
! 6: import StringIO
! 7: import libxml2
! 8:
! 9: # Memory debug specific
! 10: libxml2.debugMemory(1)
! 11:
! 12: result = ""
! 13: def processNode(reader):
! 14: global result
! 15:
! 16: result = result + "%d %d %s %d\n" % (reader.Depth(), reader.NodeType(),
! 17: reader.Name(), reader.IsEmptyElement())
! 18:
! 19: #
! 20: # Parse a document testing the readerForxxx API
! 21: #
! 22: docstr="""<foo>
! 23: <label>some text</label>
! 24: <item>100</item>
! 25: </foo>"""
! 26: expect="""0 1 foo 0
! 27: 1 14 #text 0
! 28: 1 1 label 0
! 29: 2 3 #text 0
! 30: 1 15 label 0
! 31: 1 14 #text 0
! 32: 1 1 item 0
! 33: 2 3 #text 0
! 34: 1 15 item 0
! 35: 1 14 #text 0
! 36: 0 15 foo 0
! 37: """
! 38: result = ""
! 39:
! 40: doc = libxml2.parseDoc(docstr)
! 41: reader = doc.readerWalker();
! 42: ret = reader.Read()
! 43: while ret == 1:
! 44: processNode(reader)
! 45: ret = reader.Read()
! 46:
! 47: if ret != 0:
! 48: print "Error parsing the document test1"
! 49: sys.exit(1)
! 50:
! 51: if result != expect:
! 52: print "Unexpected result for test1"
! 53: print result
! 54: sys.exit(1)
! 55:
! 56: doc.freeDoc()
! 57:
! 58: #
! 59: # Reuse the reader for another document testing the ReaderNewWalker API
! 60: #
! 61: docstr="""<foo>
! 62: <label>some text</label>
! 63: <item>1000</item>
! 64: </foo>"""
! 65: expect="""0 1 foo 0
! 66: 1 14 #text 0
! 67: 1 1 label 0
! 68: 2 3 #text 0
! 69: 1 15 label 0
! 70: 1 14 #text 0
! 71: 1 1 item 0
! 72: 2 3 #text 0
! 73: 1 15 item 0
! 74: 1 14 #text 0
! 75: 0 15 foo 0
! 76: """
! 77: result = ""
! 78:
! 79: doc = libxml2.parseDoc(docstr)
! 80: reader.NewWalker(doc)
! 81:
! 82: ret = reader.Read()
! 83: while ret == 1:
! 84: processNode(reader)
! 85: ret = reader.Read()
! 86:
! 87: if ret != 0:
! 88: print "Error parsing the document test2"
! 89: sys.exit(1)
! 90:
! 91: if result != expect:
! 92: print "Unexpected result for test2"
! 93: print result
! 94: sys.exit(1)
! 95:
! 96: doc.freeDoc()
! 97:
! 98: #
! 99: # Reuse the reader for another document testing the ReaderNewxxx API
! 100: #
! 101: docstr="""<foo>
! 102: <label>some text</label>
! 103: <item>1000</item>
! 104: </foo>"""
! 105: expect="""0 1 foo 0
! 106: 1 14 #text 0
! 107: 1 1 label 0
! 108: 2 3 #text 0
! 109: 1 15 label 0
! 110: 1 14 #text 0
! 111: 1 1 item 0
! 112: 2 3 #text 0
! 113: 1 15 item 0
! 114: 1 14 #text 0
! 115: 0 15 foo 0
! 116: """
! 117: result = ""
! 118:
! 119: reader.NewDoc(docstr, "test3", None, 0)
! 120: ret = reader.Read()
! 121: while ret == 1:
! 122: processNode(reader)
! 123: ret = reader.Read()
! 124:
! 125: if ret != 0:
! 126: print "Error parsing the document test3"
! 127: sys.exit(1)
! 128:
! 129: if result != expect:
! 130: print "Unexpected result for test3"
! 131: print result
! 132: sys.exit(1)
! 133:
! 134: #
! 135: # cleanup
! 136: #
! 137: del reader
! 138:
! 139: # Memory debug specific
! 140: libxml2.cleanupParser()
! 141: if libxml2.debugMemory(1) == 0:
! 142: print "OK"
! 143: else:
! 144: print "Memory leak %d bytes" % (libxml2.debugMemory(1))
! 145: libxml2.dumpMemory()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>