summaryrefslogtreecommitdiff
path: root/tests/extmod/json_dump_separators.py
diff options
context:
space:
mode:
authorJim Mussared <jim.mussared@gmail.com>2022-08-18 16:57:45 +1000
committerJim Mussared <jim.mussared@gmail.com>2023-06-08 17:54:24 +1000
commit4216bc7d1351feb8199e4ebbff1a9598aa1c5b02 (patch)
tree5085738ef65ab377c221f290c7fa90ec2acd4d29 /tests/extmod/json_dump_separators.py
parent5e50975a6dd9466afafbcd012c00078093fe1f57 (diff)
tests: Replace umodule with module everywhere.
This work was funded through GitHub Sponsors. Signed-off-by: Jim Mussared <jim.mussared@gmail.com>
Diffstat (limited to 'tests/extmod/json_dump_separators.py')
-rw-r--r--tests/extmod/json_dump_separators.py58
1 files changed, 58 insertions, 0 deletions
diff --git a/tests/extmod/json_dump_separators.py b/tests/extmod/json_dump_separators.py
new file mode 100644
index 000000000..4f8e56dce
--- /dev/null
+++ b/tests/extmod/json_dump_separators.py
@@ -0,0 +1,58 @@
+try:
+ from io import StringIO
+ import json
+except ImportError:
+ print("SKIP")
+ raise SystemExit
+
+for sep in [
+ None,
+ (", ", ": "),
+ (",", ": "),
+ (",", ":"),
+ [", ", ": "],
+ [",", ": "],
+ [",", ":"],
+]:
+ s = StringIO()
+ json.dump(False, s, separators=sep)
+ print(s.getvalue())
+
+ s = StringIO()
+ json.dump({"a": (2, [3, None])}, s, separators=sep)
+ print(s.getvalue())
+
+ # dump to a small-int not allowed
+ try:
+ json.dump(123, 1, separators=sep)
+ except (AttributeError, OSError): # CPython and uPy have different errors
+ print("Exception")
+
+ # dump to an object not allowed
+ try:
+ json.dump(123, {}, separators=sep)
+ except (AttributeError, OSError): # CPython and uPy have different errors
+ print("Exception")
+
+
+try:
+ s = StringIO()
+ json.dump(False, s, separators={"a": 1})
+except (TypeError, ValueError): # CPython and uPy have different errors
+ print("Exception")
+
+# invalid separator types
+for sep in [1, object()]:
+ try:
+ s = StringIO()
+ json.dump(False, s, separators=sep)
+ except TypeError:
+ print("Exception")
+
+# too many/ not enough separators
+for sep in [(), (",", ":", "?"), (",",), []]:
+ try:
+ s = StringIO()
+ json.dump(False, s, separators=sep)
+ except ValueError:
+ print("Exception")