from io import StringIO def test_01(): """ Test that the constructor and getvalue method return expected values """ string = 'Test String 1' f = StringIO() f.write(string) assert f.tell() == len(string) assert f.getvalue() == string def test_02(): """ Test that the read method (no arg) results the expected value """ string = 'Test String 2' f = StringIO(string) assert f.read() == string assert f.read() == '' def test_03(): """ Tests that the read method (integer arg) returns the expected value """ string = 'Test String 3' f = StringIO(string) assert f.read(1) == 'T' assert f.read(1) == 'e' assert f.read(1) == 's' assert f.read(1) == 't' def test_04(): """ Tests that the read method increments the cursor position and the seek method moves the cursor to the appropriate position """ string = 'Test String 4' f = StringIO(string) assert f.read(4) == 'Test' assert f.tell() == 4 assert f.seek(0) == 0 assert f.read(4) == 'Test' def test_05(): """ Tests readline """ string = 'Test String 6\nnew line is here\nfinished' f = StringIO(string) assert f.readline() == 'Test String 6\n' assert f.readline() == 'new line is here\n' assert f.readline() == 'finished' assert f.readline() == '' if __name__ == "__main__": test_01() test_02() test_03() test_04() test_05()