diff options
Diffstat (limited to 'tests/extmod/json_dump_iobase.py')
| -rw-r--r-- | tests/extmod/json_dump_iobase.py | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/extmod/json_dump_iobase.py b/tests/extmod/json_dump_iobase.py new file mode 100644 index 000000000..94d317b87 --- /dev/null +++ b/tests/extmod/json_dump_iobase.py @@ -0,0 +1,30 @@ +# test json.dump in combination with io.IOBase + +try: + import io, json +except ImportError: + print("SKIP") + raise SystemExit + +if not hasattr(io, "IOBase"): + print("SKIP") + raise SystemExit + + +# a user stream that only has the write method +class S(io.IOBase): + def __init__(self): + self.buf = "" + + def write(self, buf): + if type(buf) == bytearray: + # uPy passes a bytearray, CPython passes a str + buf = str(buf, "ascii") + self.buf += buf + return len(buf) + + +# dump to the user stream +s = S() +json.dump([123, {}], s) +print(s.buf) |
