VirtualBox

source: vbox/trunk/src/libs/libxml2-2.6.30/python/tests/outbuf.py@ 8268

最後變更 在這個檔案從8268是 6076,由 vboxsync 提交於 17 年 前

Merged dmik/s2 branch (r25959:26751) to the trunk.

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

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