##// END OF EJS Templates
Backport PR #2924: safe_run_module: Silence SystemExit codes 0 and None....
Backport PR #2924: safe_run_module: Silence SystemExit codes 0 and None. In `safe_execfile` we ignore SystemExit exceptions with codes 0 and 1. We don't do this for `safe_run_module` which leads to the following mismatch of tracebacks between Python and IPython: ``` $ cat > exit0.py import sys sys.exit(0) $ python -m exit0 $ ipython -m exit0 --------------------------------------------------------------------------- SystemExit Traceback (most recent call last) /usr/lib/python2.7/runpy.pyc in run_module(mod_name, init_globals, run_name, alter_sys) 174 if alter_sys: 175 return _run_module_code(code, init_globals, run_name, --> 176 fname, loader, pkg_name) 177 else: 178 # Leave the sys module alone /usr/lib/python2.7/runpy.pyc in _run_module_code(code, init_globals, mod_name, mod_fname, mod_loader, pkg_name) 80 mod_globals = temp_module.module.__dict__ 81 _run_code(code, mod_globals, init_globals, ---> 82 mod_name, mod_fname, mod_loader, pkg_name) 83 # Copy the globals of the temporary module, as they 84 # may be cleared when the temporary module goes away /usr/lib/python2.7/runpy.pyc in _run_code(code, run_globals, init_globals, mod_name, mod_fname, mod_loader, pkg_name) 70 __loader__ = mod_loader, 71 __package__ = pkg_name) ---> 72 exec code in run_globals 73 return run_globals 74 /tmp/exit0.py in <module>() 1 import sys ----> 2 sys.exit(0) SystemExit: 0 WARNING: Unknown failure executing module: <exit0> ``` The attached pull request silences SystemExit exceptions with codes 0 and None.
MinRK -
r9972:8ab632a4
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 ...
iptest.py Loading ...
setup.py Loading ...
show_refs.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. If you want it system-wide, you may want to edit
the install line in the plugin target to use sudo and no prefix::

sudo python setup.py install

instead of the code using `--prefix` that's in there.

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