Diff for /embedaddon/libxml2/python/tests/reader3.py between versions 1.1.1.1 and 1.1.1.2

version 1.1.1.1, 2012/02/21 23:38:00 version 1.1.1.2, 2014/06/15 19:53:34
Line 3 Line 3
 # this tests the entities substitutions with the XmlTextReader interface  # this tests the entities substitutions with the XmlTextReader interface
 #  #
 import sys  import sys
 import StringIO  
 import libxml2  import libxml2
   try:
       import StringIO
       str_io = StringIO.StringIO
   except:
       import io
       str_io = io.StringIO
   
 docstr="""<?xml version='1.0'?>  docstr="""<?xml version='1.0'?>
 <!DOCTYPE doc [  <!DOCTYPE doc [
Line 18  libxml2.debugMemory(1) Line 23  libxml2.debugMemory(1)
 #  #
 # First test, normal don't substitute entities.  # First test, normal don't substitute entities.
 #  #
f = StringIO.StringIO(docstr)f = str_io(docstr)
 input = libxml2.inputBuffer(f)  input = libxml2.inputBuffer(f)
 reader = input.newTextReader("test_noent")  reader = input.newTextReader("test_noent")
 ret = reader.Read()  ret = reader.Read()
 if ret != 1:  if ret != 1:
    print "Error reading to root"    print("Error reading to root")
     sys.exit(1)      sys.exit(1)
 if reader.Name() == "doc" or reader.NodeType() == 10:  if reader.Name() == "doc" or reader.NodeType() == 10:
     ret = reader.Read()      ret = reader.Read()
 if ret != 1:  if ret != 1:
    print "Error reading to root"    print("Error reading to root")
     sys.exit(1)      sys.exit(1)
 if reader.Name() != "doc" or reader.NodeType() != 1:  if reader.Name() != "doc" or reader.NodeType() != 1:
    print "test_normal: Error reading the root element"    print("test_normal: Error reading the root element")
     sys.exit(1)      sys.exit(1)
 ret = reader.Read()  ret = reader.Read()
 if ret != 1:  if ret != 1:
    print "test_normal: Error reading to the entity"    print("test_normal: Error reading to the entity")
     sys.exit(1)      sys.exit(1)
 if reader.Name() != "tst" or reader.NodeType() != 5:  if reader.Name() != "tst" or reader.NodeType() != 5:
    print "test_normal: Error reading the entity"    print("test_normal: Error reading the entity")
     sys.exit(1)      sys.exit(1)
 ret = reader.Read()  ret = reader.Read()
 if ret != 1:  if ret != 1:
    print "test_normal: Error reading to the end of root"    print("test_normal: Error reading to the end of root")
     sys.exit(1)      sys.exit(1)
 if reader.Name() != "doc" or reader.NodeType() != 15:  if reader.Name() != "doc" or reader.NodeType() != 15:
    print "test_normal: Error reading the end of the root element"    print("test_normal: Error reading the end of the root element")
     sys.exit(1)      sys.exit(1)
 ret = reader.Read()  ret = reader.Read()
 if ret != 0:  if ret != 0:
    print "test_normal: Error detecting the end"    print("test_normal: Error detecting the end")
     sys.exit(1)      sys.exit(1)
   
 #  #
 # Second test, completely substitute the entities.  # Second test, completely substitute the entities.
 #  #
f = StringIO.StringIO(docstr)f = str_io(docstr)
 input = libxml2.inputBuffer(f)  input = libxml2.inputBuffer(f)
 reader = input.newTextReader("test_noent")  reader = input.newTextReader("test_noent")
 reader.SetParserProp(libxml2.PARSER_SUBST_ENTITIES, 1)  reader.SetParserProp(libxml2.PARSER_SUBST_ENTITIES, 1)
 ret = reader.Read()  ret = reader.Read()
 if ret != 1:  if ret != 1:
    print "Error reading to root"    print("Error reading to root")
     sys.exit(1)      sys.exit(1)
 if reader.Name() == "doc" or reader.NodeType() == 10:  if reader.Name() == "doc" or reader.NodeType() == 10:
     ret = reader.Read()      ret = reader.Read()
 if ret != 1:  if ret != 1:
    print "Error reading to root"    print("Error reading to root")
     sys.exit(1)      sys.exit(1)
 if reader.Name() != "doc" or reader.NodeType() != 1:  if reader.Name() != "doc" or reader.NodeType() != 1:
    print "test_noent: Error reading the root element"    print("test_noent: Error reading the root element")
     sys.exit(1)      sys.exit(1)
 ret = reader.Read()  ret = reader.Read()
 if ret != 1:  if ret != 1:
    print "test_noent: Error reading to the entity content"    print("test_noent: Error reading to the entity content")
     sys.exit(1)      sys.exit(1)
 if reader.Name() != "p" or reader.NodeType() != 1:  if reader.Name() != "p" or reader.NodeType() != 1:
    print "test_noent: Error reading the p element from entity"    print("test_noent: Error reading the p element from entity")
     sys.exit(1)      sys.exit(1)
 ret = reader.Read()  ret = reader.Read()
 if ret != 1:  if ret != 1:
    print "test_noent: Error reading to the text node"    print("test_noent: Error reading to the text node")
     sys.exit(1)      sys.exit(1)
 if reader.NodeType() != 3 or reader.Value() != "test":  if reader.NodeType() != 3 or reader.Value() != "test":
    print "test_noent: Error reading the text node"    print("test_noent: Error reading the text node")
     sys.exit(1)      sys.exit(1)
 ret = reader.Read()  ret = reader.Read()
 if ret != 1:  if ret != 1:
    print "test_noent: Error reading to the end of p element"    print("test_noent: Error reading to the end of p element")
     sys.exit(1)      sys.exit(1)
 if reader.Name() != "p" or reader.NodeType() != 15:  if reader.Name() != "p" or reader.NodeType() != 15:
    print "test_noent: Error reading the end of the p element"    print("test_noent: Error reading the end of the p element")
     sys.exit(1)      sys.exit(1)
 ret = reader.Read()  ret = reader.Read()
 if ret != 1:  if ret != 1:
    print "test_noent: Error reading to the end of root"    print("test_noent: Error reading to the end of root")
     sys.exit(1)      sys.exit(1)
 if reader.Name() != "doc" or reader.NodeType() != 15:  if reader.Name() != "doc" or reader.NodeType() != 15:
    print "test_noent: Error reading the end of the root element"    print("test_noent: Error reading the end of the root element")
     sys.exit(1)      sys.exit(1)
 ret = reader.Read()  ret = reader.Read()
 if ret != 0:  if ret != 0:
    print "test_noent: Error detecting the end"    print("test_noent: Error detecting the end")
     sys.exit(1)      sys.exit(1)
   
 #  #
Line 122  simplestruct2_ent="""<descr/>""" Line 127  simplestruct2_ent="""<descr/>"""
   
 def myResolver(URL, ID, ctxt):  def myResolver(URL, ID, ctxt):
     if URL == "simplestruct2.ent":      if URL == "simplestruct2.ent":
        return(StringIO.StringIO(simplestruct2_ent))        return(str_io(simplestruct2_ent))
     return None      return None
   
 libxml2.setEntityLoader(myResolver)  libxml2.setEntityLoader(myResolver)
   
input = libxml2.inputBuffer(StringIO.StringIO(s))input = libxml2.inputBuffer(str_io(s))
 reader = input.newTextReader("test3")  reader = input.newTextReader("test3")
 reader.SetParserProp(libxml2.PARSER_SUBST_ENTITIES,1)  reader.SetParserProp(libxml2.PARSER_SUBST_ENTITIES,1)
 while reader.Read() == 1:  while reader.Read() == 1:
Line 135  while reader.Read() == 1: Line 140  while reader.Read() == 1:
                                    reader.Depth(),reader.IsEmptyElement())                                     reader.Depth(),reader.IsEmptyElement())
   
 if res != expect:  if res != expect:
    print "test3 failed: unexpected output"    print("test3 failed: unexpected output")
    print res    print(res)
     sys.exit(1)      sys.exit(1)
   
 #  #
Line 149  del reader Line 154  del reader
 # Memory debug specific  # Memory debug specific
 libxml2.cleanupParser()  libxml2.cleanupParser()
 if libxml2.debugMemory(1) == 0:  if libxml2.debugMemory(1) == 0:
    print "OK"    print("OK")
 else:  else:
    print "Memory leak %d bytes" % (libxml2.debugMemory(1))    print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
     libxml2.dumpMemory()      libxml2.dumpMemory()

Removed from v.1.1.1.1  
changed lines
  Added in v.1.1.1.2


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