summaryrefslogtreecommitdiffstatshomepage
path: root/tests/misc/print_exception.py
diff options
context:
space:
mode:
authorPaul Sokolovsky <pfalcon@users.sourceforge.net>2014-12-10 20:35:10 +0200
committerDamien George <damien.p.george@gmail.com>2014-12-10 20:48:53 +0000
commite8487ea1be747c1097174a230ba89785a8f440a5 (patch)
treeadc9d7475a8b393c23260179682d0afd24b05100 /tests/misc/print_exception.py
parent6c3fc7465692ffe4c3ebd9983b405006ea7178a7 (diff)
downloadmicropython-e8487ea1be747c1097174a230ba89785a8f440a5.tar.gz
micropython-e8487ea1be747c1097174a230ba89785a8f440a5.zip
tests: Add test for print_exception() function.
Diffstat (limited to 'tests/misc/print_exception.py')
-rw-r--r--tests/misc/print_exception.py21
1 files changed, 21 insertions, 0 deletions
diff --git a/tests/misc/print_exception.py b/tests/misc/print_exception.py
new file mode 100644
index 0000000000..e48e00683e
--- /dev/null
+++ b/tests/misc/print_exception.py
@@ -0,0 +1,21 @@
+import io
+import sys
+if hasattr(sys, 'print_exception'):
+ print_exception = sys.print_exception
+else:
+ import traceback
+ print_exception = lambda e, f: traceback.print_exception(None, e, None, file=f)
+
+try:
+ 1/0
+except Exception as e:
+ print('caught')
+ buf = io.StringIO()
+ print_exception(e, buf)
+ s = buf.getvalue()
+ for l in s.split("\n"):
+ # uPy and CPy tracebacks differ in that CPy prints a source line for
+ # each traceback entry. In this case, we know that offending line
+ # has 4-space indent, so filter it out.
+ if not l.startswith(" "):
+ print(l)