Annotation of embedaddon/libxml2/python/tests/outbuf.py, revision 1.1.1.1
1.1 misho 1: #!/usr/bin/python -u
2: import sys
3: import libxml2
4: import StringIO
5:
6: def 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:
17: def 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:
37: def 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:
62: def 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:
91: if __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()
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>