(root)/
libxml2-2.12.3/
python/
tests/
reader7.py
       1  #!/usr/bin/env python3
       2  #
       3  # this tests the entities substitutions with the XmlTextReader interface
       4  #
       5  import sys
       6  import setup_test
       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  reader = libxml2.readerForDoc(docstr, "test1", None, 0)
      41  ret = reader.Read()
      42  while ret == 1:
      43      processNode(reader)
      44      ret = reader.Read()
      45  
      46  if ret != 0:
      47      print("Error parsing the document test1")
      48      sys.exit(1)
      49  
      50  if result != expect:
      51      print("Unexpected result for test1")
      52      print(result)
      53      sys.exit(1)
      54  
      55  #
      56  # Reuse the reader for another document testing the ReaderNewxxx API
      57  #
      58  docstr="""<foo>
      59  <label>some text</label>
      60  <item>1000</item>
      61  </foo>"""
      62  expect="""0 1 foo 0
      63  1 14 #text 0
      64  1 1 label 0
      65  2 3 #text 0
      66  1 15 label 0
      67  1 14 #text 0
      68  1 1 item 0
      69  2 3 #text 0
      70  1 15 item 0
      71  1 14 #text 0
      72  0 15 foo 0
      73  """
      74  result = ""
      75  
      76  reader.NewDoc(docstr, "test2", None, 0)
      77  ret = reader.Read()
      78  while ret == 1:
      79      processNode(reader)
      80      ret = reader.Read()
      81  
      82  if ret != 0:
      83      print("Error parsing the document test2")
      84      sys.exit(1)
      85  
      86  if result != expect:
      87      print("Unexpected result for test2")
      88      print(result)
      89      sys.exit(1)
      90  
      91  #
      92  # cleanup
      93  #
      94  del reader
      95  
      96  # Memory debug specific
      97  libxml2.cleanupParser()
      98  if libxml2.debugMemory(1) == 0:
      99      print("OK")
     100  else:
     101      print("Memory leak %d bytes" % (libxml2.debugMemory(1)))