diff options
author | Damien George <damien.p.george@gmail.com> | 2018-06-13 13:13:36 +1000 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2018-06-18 12:35:56 +1000 |
commit | 48829cd3c6e723eadf5eb60fd8e521a1761fe8b3 (patch) | |
tree | eb477c604e42ba04781f0b4e4f2819426b920c75 | |
parent | 0ecce77c663ee0ebb7fa6eefaf28094ee1dbf051 (diff) |
tests/extmod: Add test for ujson.dump writing to a user IOBase object.
-rw-r--r-- | tests/extmod/ujson_dump_iobase.py | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/tests/extmod/ujson_dump_iobase.py b/tests/extmod/ujson_dump_iobase.py new file mode 100644 index 000000000..d30d1b561 --- /dev/null +++ b/tests/extmod/ujson_dump_iobase.py @@ -0,0 +1,32 @@ +# test ujson.dump in combination with uio.IOBase + +try: + import uio as io + import ujson as json +except ImportError: + 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 + + +# dump to the user stream +s = S() +json.dump([123, {}], s) +print(s.buf) |