circuitpython/tests/io/stringio1.py
Paul Sokolovsky 566d8f1d7e tests: Make "io" modules fixes for CPython compatibility.
Previously, "import _io" worked on both CPython and MicroPython (essentially
by a chance on CPython, as there's not guarantee that its contents will stay
the same across versions), but as the module was renamed to uio, need to use
more robust import sequence for compatibility.
2016-05-02 14:38:07 +03:00

46 lines
828 B
Python

try:
import uio as io
except ImportError:
import io
a = io.StringIO()
print('io.StringIO' in repr(a))
print(a.getvalue())
print(a.read())
a = io.StringIO("foobar")
print(a.getvalue())
print(a.read())
print(a.read())
a = io.StringIO()
a.write("foo")
print(a.getvalue())
a = io.StringIO("foo")
a.write("12")
print(a.getvalue())
a = io.StringIO("foo")
a.write("123")
print(a.getvalue())
a = io.StringIO("foo")
a.write("1234")
print(a.getvalue())
a = io.StringIO()
a.write("foo")
print(a.read())
a = io.StringIO()
a.close()
for f in [a.read, a.getvalue, lambda:a.write("")]:
# CPython throws for operations on closed I/O, micropython makes
# the underlying string empty unless MICROPY_CPYTHON_COMPAT defined
try:
f()
print("ValueError")
except ValueError:
print("ValueError")