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

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

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