VirtualBox

source: vbox/trunk/src/libs/libxml2-2.9.2/python/tests/outbuf.py@ 64246

最後變更 在這個檔案從64246是 58072,由 vboxsync 提交於 9 年 前

libxml 2.9.2 unmodified

  • 屬性 svn:eol-style 設為 LF
  • 屬性 svn:executable 設為 *
檔案大小: 3.1 KB
 
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()
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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