VirtualBox

source: vbox/trunk/src/libs/libxml2-2.9.4/python/tests/outbuf.py@ 76900

Last change on this file since 76900 was 65950, checked in by vboxsync, 8 years ago

libxml 2.9.4: fix export

  • Property svn:eol-style set to LF
  • Property svn:executable set to *
File size: 3.1 KB
Line 
1#!/usr/bin/python -u
2import sys
3import libxml2
4try:
5 import StringIO
6 str_io = StringIO.StringIO
7except:
8 import io
9 str_io = io.StringIO
10
11def testSimpleBufferWrites():
12 f = str_io()
13 buf = libxml2.createOutputBuffer(f, "ISO-8859-1")
14 buf.write(3, "foo")
15 buf.writeString("bar")
16 buf.close()
17
18 if f.getvalue() != "foobar":
19 print("Failed to save to StringIO")
20 sys.exit(1)
21
22def testSaveDocToBuffer():
23 """
24 Regression test for bug #154294.
25 """
26 input = '<foo>Hello</foo>'
27 expected = '''\
28<?xml version="1.0" encoding="UTF-8"?>
29<foo>Hello</foo>
30'''
31 f = str_io()
32 buf = libxml2.createOutputBuffer(f, 'UTF-8')
33 doc = libxml2.parseDoc(input)
34 doc.saveFileTo(buf, 'UTF-8')
35 doc.freeDoc()
36 if f.getvalue() != expected:
37 print('xmlDoc.saveFileTo() call failed.')
38 print(' got: %s' % repr(f.getvalue()))
39 print('expected: %s' % repr(expected))
40 sys.exit(1)
41
42def testSaveFormattedDocToBuffer():
43 input = '<outer><inner>Some text</inner><inner/></outer>'
44 # The formatted and non-formatted versions of the output.
45 expected = ('''\
46<?xml version="1.0" encoding="UTF-8"?>
47<outer><inner>Some text</inner><inner/></outer>
48''', '''\
49<?xml version="1.0" encoding="UTF-8"?>
50<outer>
51 <inner>Some text</inner>
52 <inner/>
53</outer>
54''')
55 doc = libxml2.parseDoc(input)
56 for i in (0, 1):
57 f = str_io()
58 buf = libxml2.createOutputBuffer(f, 'UTF-8')
59 doc.saveFormatFileTo(buf, 'UTF-8', i)
60 if f.getvalue() != expected[i]:
61 print('xmlDoc.saveFormatFileTo() call failed.')
62 print(' got: %s' % repr(f.getvalue()))
63 print('expected: %s' % repr(expected[i]))
64 sys.exit(1)
65 doc.freeDoc()
66
67def testSaveIntoOutputBuffer():
68 """
69 Similar to the previous two tests, except this time we invoke the save
70 methods on the output buffer object and pass in an XML node object.
71 """
72 input = '<foo>Hello</foo>'
73 expected = '''\
74<?xml version="1.0" encoding="UTF-8"?>
75<foo>Hello</foo>
76'''
77 f = str_io()
78 doc = libxml2.parseDoc(input)
79 buf = libxml2.createOutputBuffer(f, 'UTF-8')
80 buf.saveFileTo(doc, 'UTF-8')
81 if f.getvalue() != expected:
82 print('outputBuffer.saveFileTo() call failed.')
83 print(' got: %s' % repr(f.getvalue()))
84 print('expected: %s' % repr(expected))
85 sys.exit(1)
86 f = str_io()
87 buf = libxml2.createOutputBuffer(f, 'UTF-8')
88 buf.saveFormatFileTo(doc, 'UTF-8', 1)
89 if f.getvalue() != expected:
90 print('outputBuffer.saveFormatFileTo() call failed.')
91 print(' got: %s' % repr(f.getvalue()))
92 print('expected: %s' % repr(expected))
93 sys.exit(1)
94 doc.freeDoc()
95
96if __name__ == '__main__':
97 # Memory debug specific
98 libxml2.debugMemory(1)
99
100 testSimpleBufferWrites()
101 testSaveDocToBuffer()
102 testSaveFormattedDocToBuffer()
103 testSaveIntoOutputBuffer()
104
105 libxml2.cleanupParser()
106 if libxml2.debugMemory(1) == 0:
107 print("OK")
108 else:
109 print("Memory leak %d bytes" % (libxml2.debugMemory(1)))
110 libxml2.dumpMemory()
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette