##// END OF EJS Templates
Fix showing SystemExit exception raise inside except handler (#14503)...
Fix showing SystemExit exception raise inside except handler (#14503) Doing something like this: ```python try: 5 / 0 except Exception as e: raise SystemExit ``` was hitting an error inside UltraTB, creating a long traceback of its internals (which, ironically, UltraTB itself then displays correctly :-). `ListTB.get_exception_only()` calls the `ListTB.structured_traceback()` method *specifically* - even if `self` is a subclass, it won't use the subclass's method. However, the exception chaining in that method uses recursion by calling `self.structured_traceback()`, which will use a subclass's method. Tuples were added as an option there to support exception chaining, but not all of the machinery in connected classes expects a tuple. This just skips the exception chaining logic for the `etb=None` case, when we're showing the exception only. I'm not sure this is necessarily the best fix, but I didn't want to spend too much time following code around a module that's old enough to vote. Closes #12104
M Bussonnier -
r28830:d5762c16 merge
Show More
Name Size Modified Last Commit Author
/ IPython / testing / plugin
Makefile Loading ...
README.txt Loading ...
__init__.py Loading ...
dtexample.py Loading ...
ipdoctest.py Loading ...
pytest_ipdoctest.py Loading ...
setup.py Loading ...
simple.py Loading ...
simplevars.py Loading ...
test_combo.txt Loading ...
test_example.txt Loading ...
test_exampleip.txt Loading ...
test_ipdoctest.py Loading ...
test_refs.py Loading ...

=======================================================
Nose plugin with IPython and extension module support
=======================================================

This directory provides the key functionality for test support that IPython
needs as a nose plugin, which can be installed for use in projects other than
IPython.

The presence of a Makefile here is mostly for development and debugging
purposes as it only provides a few shorthand commands. You can manually
install the plugin by using standard Python procedures (``setup.py install``
with appropriate arguments).

To install the plugin using the Makefile, edit its first line to reflect where
you'd like the installation.

Once you've set the prefix, simply build/install the plugin with::

make

and run the tests with::

make test

You should see output similar to::

maqroll[plugin]> make test
nosetests -s --with-ipdoctest --doctest-tests dtexample.py
..
----------------------------------------------------------------------
Ran 2 tests in 0.016s

OK