diff options
-rw-r--r-- | tests/misc/print_exception.py | 21 |
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) |