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

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 libxml2
                      7: 
                      8: # Memory debug specific
                      9: libxml2.debugMemory(1)
                     10: 
                     11: result = ""
                     12: def processNode(reader):
                     13:     global result
                     14: 
                     15:     result = result + "%d %d %s %d\n" % (reader.Depth(), reader.NodeType(),
                     16:                           reader.Name(), reader.IsEmptyElement())
                     17: 
                     18: #
                     19: # Parse a document testing the readerForxxx API
                     20: #
                     21: docstr="""<foo>
                     22: <label>some text</label>
                     23: <item>100</item>
                     24: </foo>"""
                     25: expect="""0 1 foo 0
                     26: 1 14 #text 0
                     27: 1 1 label 0
                     28: 2 3 #text 0
                     29: 1 15 label 0
                     30: 1 14 #text 0
                     31: 1 1 item 0
                     32: 2 3 #text 0
                     33: 1 15 item 0
                     34: 1 14 #text 0
                     35: 0 15 foo 0
                     36: """
                     37: result = ""
                     38: 
                     39: reader = libxml2.readerForDoc(docstr, "test1", None, 0)
                     40: ret = reader.Read()
                     41: while ret == 1:
                     42:     processNode(reader)
                     43:     ret = reader.Read()
                     44: 
                     45: if ret != 0:
1.1.1.2 ! misho      46:     print("Error parsing the document test1")
1.1       misho      47:     sys.exit(1)
                     48: 
                     49: if result != expect:
1.1.1.2 ! misho      50:     print("Unexpected result for test1")
        !            51:     print(result)
1.1       misho      52:     sys.exit(1)
                     53: 
                     54: #
                     55: # Reuse the reader for another document testing the ReaderNewxxx API
                     56: #
                     57: docstr="""<foo>
                     58: <label>some text</label>
                     59: <item>1000</item>
                     60: </foo>"""
                     61: expect="""0 1 foo 0
                     62: 1 14 #text 0
                     63: 1 1 label 0
                     64: 2 3 #text 0
                     65: 1 15 label 0
                     66: 1 14 #text 0
                     67: 1 1 item 0
                     68: 2 3 #text 0
                     69: 1 15 item 0
                     70: 1 14 #text 0
                     71: 0 15 foo 0
                     72: """
                     73: result = ""
                     74: 
                     75: reader.NewDoc(docstr, "test2", None, 0)
                     76: ret = reader.Read()
                     77: while ret == 1:
                     78:     processNode(reader)
                     79:     ret = reader.Read()
                     80: 
                     81: if ret != 0:
1.1.1.2 ! misho      82:     print("Error parsing the document test2")
1.1       misho      83:     sys.exit(1)
                     84: 
                     85: if result != expect:
1.1.1.2 ! misho      86:     print("Unexpected result for test2")
        !            87:     print(result)
1.1       misho      88:     sys.exit(1)
                     89: 
                     90: #
                     91: # cleanup
                     92: #
                     93: del reader
                     94: 
                     95: # Memory debug specific
                     96: libxml2.cleanupParser()
                     97: if libxml2.debugMemory(1) == 0:
1.1.1.2 ! misho      98:     print("OK")
1.1       misho      99: else:
1.1.1.2 ! misho     100:     print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
1.1       misho     101:     libxml2.dumpMemory()

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