diff options
author | Paul Sokolovsky <pfalcon@users.sourceforge.net> | 2014-12-10 20:35:10 +0200 |
---|---|---|
committer | Damien George <damien.p.george@gmail.com> | 2014-12-10 20:48:53 +0000 |
commit | e8487ea1be747c1097174a230ba89785a8f440a5 (patch) | |
tree | adc9d7475a8b393c23260179682d0afd24b05100 /tests/misc/print_exception.py | |
parent | 6c3fc7465692ffe4c3ebd9983b405006ea7178a7 (diff) | |
download | micropython-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.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) |