Return to readernext.py CVS log | Up to [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / python / tests |
1.1 ! misho 1: #!/usr/bin/python -u ! 2: # -*- coding: ISO-8859-1 -*- ! 3: # ! 4: # this tests the next API of the XmlTextReader interface ! 5: # ! 6: import libxml2 ! 7: import StringIO ! 8: import sys ! 9: ! 10: # Memory debug specific ! 11: libxml2.debugMemory(1) ! 12: ! 13: f = StringIO.StringIO("""<a><b><c /></b><d>content of d</d></a>""") ! 14: input = libxml2.inputBuffer(f) ! 15: reader = input.newTextReader("test_next") ! 16: ret = reader.Read() ! 17: if ret != 1: ! 18: print "test_next: Error reading to first element" ! 19: sys.exit(1) ! 20: if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \ ! 21: reader.NodeType() != 1 or reader.HasAttributes() != 0: ! 22: print "test_next: Error reading the first element" ! 23: sys.exit(1) ! 24: ret = reader.Read() ! 25: if ret != 1: ! 26: print "test_next: Error reading to second element" ! 27: sys.exit(1) ! 28: if reader.Name() != "b" or reader.IsEmptyElement() != 0 or \ ! 29: reader.NodeType() != 1 or reader.HasAttributes() != 0: ! 30: print "test_next: Error reading the second element" ! 31: sys.exit(1) ! 32: ret = reader.Read() ! 33: if ret != 1: ! 34: print "test_next: Error reading to third element" ! 35: sys.exit(1) ! 36: if reader.Name() != "c" or reader.NodeType() != 1 or \ ! 37: reader.HasAttributes() != 0: ! 38: print "test_next: Error reading the third element" ! 39: sys.exit(1) ! 40: ret = reader.Read() ! 41: if ret != 1: ! 42: print "test_next: Error reading to end of third element" ! 43: sys.exit(1) ! 44: if reader.Name() != "b" or reader.NodeType() != 15: ! 45: print "test_next: Error reading to end of second element" ! 46: sys.exit(1) ! 47: ret = reader.Next() ! 48: if ret != 1: ! 49: print "test_next: Error moving to third element" ! 50: sys.exit(1) ! 51: if reader.Name() != "d" or reader.IsEmptyElement() != 0 or \ ! 52: reader.NodeType() != 1 or reader.HasAttributes() != 0: ! 53: print "test_next: Error reading third element" ! 54: sys.exit(1) ! 55: ret = reader.Next() ! 56: if ret != 1: ! 57: print "test_next: Error reading to end of first element" ! 58: sys.exit(1) ! 59: if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \ ! 60: reader.NodeType() != 15 or reader.HasAttributes() != 0: ! 61: print "test_next: Error reading the end of first element" ! 62: sys.exit(1) ! 63: ret = reader.Read() ! 64: if ret != 0: ! 65: print "test_next: Error reading to end of document" ! 66: sys.exit(1) ! 67: ! 68: # ! 69: # cleanup for memory allocation counting ! 70: # ! 71: del f ! 72: del input ! 73: del reader ! 74: ! 75: # Memory debug specific ! 76: libxml2.cleanupParser() ! 77: if libxml2.debugMemory(1) == 0: ! 78: print "OK" ! 79: else: ! 80: print "Memory leak %d bytes" % (libxml2.debugMemory(1)) ! 81: libxml2.dumpMemory()