File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / libxml2 / python / tests / readernext.py
Revision 1.1.1.2 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Sun Jun 15 19:53:34 2014 UTC (10 years, 5 months ago) by misho
Branches: libxml2, MAIN
CVS tags: v2_9_1p0, v2_9_1, HEAD
libxml2 2.9.1

    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 sys
    8: try:
    9:     import StringIO
   10:     str_io = StringIO.StringIO
   11: except:
   12:     import io
   13:     str_io = io.StringIO
   14: 
   15: # Memory debug specific
   16: libxml2.debugMemory(1)
   17: 
   18: f = str_io("""<a><b><c /></b><d>content of d</d></a>""")
   19: input = libxml2.inputBuffer(f)
   20: reader = input.newTextReader("test_next")
   21: ret = reader.Read()
   22: if ret != 1:
   23:     print("test_next: Error reading to first element")
   24:     sys.exit(1)
   25: if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \
   26:    reader.NodeType() != 1 or reader.HasAttributes() != 0:
   27:     print("test_next: Error reading the first element")
   28:     sys.exit(1)
   29: ret = reader.Read()
   30: if ret != 1:
   31:     print("test_next: Error reading to second element")
   32:     sys.exit(1)
   33: if reader.Name() != "b" or reader.IsEmptyElement() != 0 or \
   34:    reader.NodeType() != 1 or reader.HasAttributes() != 0:
   35:     print("test_next: Error reading the second element")
   36:     sys.exit(1)
   37: ret = reader.Read()
   38: if ret != 1:
   39:     print("test_next: Error reading to third element")
   40:     sys.exit(1)
   41: if reader.Name() != "c" or reader.NodeType() != 1 or \
   42:    reader.HasAttributes() != 0:
   43:     print("test_next: Error reading the third element")
   44:     sys.exit(1)
   45: ret = reader.Read()
   46: if ret != 1:
   47:     print("test_next: Error reading to end of third element")
   48:     sys.exit(1)
   49: if reader.Name() != "b" or reader.NodeType() != 15:
   50:     print("test_next: Error reading to end of second element")
   51:     sys.exit(1)
   52: ret = reader.Next()
   53: if ret != 1:
   54:     print("test_next: Error moving to third element")
   55:     sys.exit(1)
   56: if reader.Name() != "d" or reader.IsEmptyElement() != 0 or \
   57:    reader.NodeType() != 1 or reader.HasAttributes() != 0:
   58:     print("test_next: Error reading third element")
   59:     sys.exit(1)
   60: ret = reader.Next()
   61: if ret != 1:
   62:     print("test_next: Error reading to end of first element")
   63:     sys.exit(1)
   64: if reader.Name() != "a" or reader.IsEmptyElement() != 0 or \
   65:    reader.NodeType() != 15 or reader.HasAttributes() != 0:
   66:     print("test_next: Error reading the end of first element")
   67:     sys.exit(1)
   68: ret = reader.Read()
   69: if ret != 0:
   70:     print("test_next: Error reading to end of document")
   71:     sys.exit(1)
   72: 
   73: #
   74: # cleanup for memory allocation counting
   75: #
   76: del f
   77: del input
   78: del reader
   79: 
   80: # Memory debug specific
   81: libxml2.cleanupParser()
   82: if libxml2.debugMemory(1) == 0:
   83:     print("OK")
   84: else:
   85:     print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
   86:     libxml2.dumpMemory()

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