home *** CD-ROM | disk | FTP | other *** search
- #!/usr/bin/python -u
- #
- # this tests the entities substitutions with the XmlTextReader interface
- #
- import sys
- import StringIO
- import libxml2
-
- # Memory debug specific
- libxml2.debugMemory(1)
-
- result = ""
- def processNode(reader):
- global result
-
- result = result + "%d %d %s %d\n" % (reader.Depth(), reader.NodeType(),
- reader.Name(), reader.IsEmptyElement())
-
- #
- # Parse a document testing the readerForxxx API
- #
- docstr="""<foo>
- <label>some text</label>
- <item>100</item>
- </foo>"""
- expect="""0 1 foo 0
- 1 14 #text 0
- 1 1 label 0
- 2 3 #text 0
- 1 15 label 0
- 1 14 #text 0
- 1 1 item 0
- 2 3 #text 0
- 1 15 item 0
- 1 14 #text 0
- 0 15 foo 0
- """
- result = ""
-
- doc = libxml2.parseDoc(docstr)
- reader = doc.readerWalker();
- ret = reader.Read()
- while ret == 1:
- processNode(reader)
- ret = reader.Read()
-
- if ret != 0:
- print "Error parsing the document test1"
- sys.exit(1)
-
- if result != expect:
- print "Unexpected result for test1"
- print result
- sys.exit(1)
-
- doc.freeDoc()
-
- #
- # Reuse the reader for another document testing the ReaderNewWalker API
- #
- docstr="""<foo>
- <label>some text</label>
- <item>1000</item>
- </foo>"""
- expect="""0 1 foo 0
- 1 14 #text 0
- 1 1 label 0
- 2 3 #text 0
- 1 15 label 0
- 1 14 #text 0
- 1 1 item 0
- 2 3 #text 0
- 1 15 item 0
- 1 14 #text 0
- 0 15 foo 0
- """
- result = ""
-
- doc = libxml2.parseDoc(docstr)
- reader.NewWalker(doc)
-
- ret = reader.Read()
- while ret == 1:
- processNode(reader)
- ret = reader.Read()
-
- if ret != 0:
- print "Error parsing the document test2"
- sys.exit(1)
-
- if result != expect:
- print "Unexpected result for test2"
- print result
- sys.exit(1)
-
- doc.freeDoc()
-
- #
- # Reuse the reader for another document testing the ReaderNewxxx API
- #
- docstr="""<foo>
- <label>some text</label>
- <item>1000</item>
- </foo>"""
- expect="""0 1 foo 0
- 1 14 #text 0
- 1 1 label 0
- 2 3 #text 0
- 1 15 label 0
- 1 14 #text 0
- 1 1 item 0
- 2 3 #text 0
- 1 15 item 0
- 1 14 #text 0
- 0 15 foo 0
- """
- result = ""
-
- reader.NewDoc(docstr, "test3", None, 0)
- ret = reader.Read()
- while ret == 1:
- processNode(reader)
- ret = reader.Read()
-
- if ret != 0:
- print "Error parsing the document test3"
- sys.exit(1)
-
- if result != expect:
- print "Unexpected result for test3"
- print result
- sys.exit(1)
-
- #
- # cleanup
- #
- del reader
-
- # Memory debug specific
- libxml2.cleanupParser()
- if libxml2.debugMemory(1) == 0:
- print "OK"
- else:
- print "Memory leak %d bytes" % (libxml2.debugMemory(1))
- libxml2.dumpMemory()
-