1try:
2    import uio as io
3except ImportError:
4    import io
5
6a = io.StringIO()
7print('io.StringIO' in repr(a))
8print(a.getvalue())
9print(a.read())
10
11a = io.StringIO("foobar")
12print(a.getvalue())
13print(a.read())
14print(a.read())
15
16a = io.StringIO()
17a.write("foo")
18print(a.getvalue())
19
20a = io.StringIO("foo")
21a.write("12")
22print(a.getvalue())
23
24a = io.StringIO("foo")
25a.write("123")
26print(a.getvalue())
27
28a = io.StringIO("foo")
29a.write("1234")
30print(a.getvalue())
31
32a = io.StringIO()
33a.write("foo")
34print(a.read())
35
36a = io.StringIO()
37print(a.tell())
38a.write("foo")
39print(a.tell())
40
41a = io.StringIO()
42a.close()
43for f in [a.read, a.getvalue, lambda:a.write("")]:
44    # CPython throws for operations on closed I/O, MicroPython makes
45    # the underlying string empty unless MICROPY_CPYTHON_COMPAT defined
46    try:
47        f()
48        print("ValueError")
49    except ValueError:
50        print("ValueError")
51