Annotation of embedaddon/libxml2/python/tests/outbuf.py, revision 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>