# Tests StringIO and cStringIO

def do_test(module):
    s = ("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"+'\n')*5
    f = module.StringIO(s)
    print f.read(10)
    print f.readline()
    print len(f.readlines(60))

    f = module.StringIO()
    f.write('abcdef')
    f.seek(3)
    f.write('uvwxyz')
    f.write('!')
    print `f.getvalue()`
    f.close()

    f = module.StringIO()
    f.writelines(["a", "b", "c"])
    f.seek(0)
    print `f.getvalue()`
    f.close()

    f = module.StringIO()
    f.write(s)
    f.seek(10)
    f.truncate()
    print `f.getvalue()`
    f.seek(0)
    f.truncate(5)
    print `f.getvalue()`
    f.close()
    try:
        f.write("frobnitz")
    except ValueError, e:
        print "Caught expected ValueError writing to closed StringIO:"
        print e
    else:
        print "Failed to catch ValueError writing to closed StringIO."

import StringIO, cStringIO
do_test(StringIO)
do_test(cStringIO)
