Previously `^C` would register as a regular test failure, and the test suite would continue, in which case halting `iptest` meant hitting `^C` nine times.
This change makes iptest take notice of sigint in a test runner, and aborts the run.
There's nothing there we should be running python tests on, and
occasionally python files may appear there that cause problems to nose
(e.g. mathjax ships a non-py3 valid conf.py that breaks py3 testing).
Add %%octave, %octave, %octave_pull and %octave_push magics to facilitate interaction with Octave via oct2py. This is similar in spirit to the R magic extension.
Rmagic extension to use R (the statistical package) seamlessly from IPython.
The rmagic extension allows R inline code as well as cell level magics. An example notebook is provided in docs/examples/notebooks/rmagic_extension.ipynb to demonstrate its usage.
Main points:
1) Allows capture of plots to R via inline png plots (like --pylab inline)
2) Allows capture of R's stdout() connection to the notebook
3) Allows simple push/pull for array data to/from R (via rpy2) with copy only on push to R -- this seems necessary.
Cython related magic functions: offers the new cell magics %%cython_inline, %%cython_pyximport and %%cython to make it very easy to put cython-accelerated code in a cell and have it loaded interactively.
The History will always appear empty, so history magics, etc. don't do anything. Readline history for a single session works fine.
Test suite should now pass without sqlite
* test_for uses import_item, instead of __import__
* test_for now allows a callback, for processing the result of import_item prior to comparison with min_zmq
* callback is only called when min_zmq is defined
* callback's default is to just return mod.__version__
* use this to check tornado version, and zmq as a version tuple
* fix pexpect check to use external.pexpect
IPDoctest replaces the normal doctest plugin. Previously we did this by
initializing the builtin plugins but skipping the doctest plugin.
However, if the user has a noserc file with 'with-doctest=1' or the
environment variable 'NOSE_WITH_DOCTEST', then nose will try and
initialize the doctest plugin when it isn't there, and barf. This
commit defers the removal of the doctest plugin to the configuration
stage, so doctest can be enabled before it is thrown away by us.
* use index on msg_id in mongodb backend (_table prevented some methods from working outside the session)
* purge_request improved to use fewer db calls
* mongodb testcase split into its own file
* Fix equality testing, NULL handling, in SQLiteDB backend
Before, calling figure() would produce a big blank area. This ensures
output is only returned if the figure has content.
Also added basic testing for pylabtools, for which we had none.
ported from numpy.testing.noseclasses, with the equivalent code
extracted into _numpy_testing_noseclasses in case numpy is not
installed.
removed some unused imports throughout
This will give us an easy way for users to report platform details,
without trying to cram lots of data into the version string.
Now, the version information in release.py is simple and doesn't
attempt to read version control data at runtime. We expose sys_info()
as a top-level function so it's very easy to remember/direct for new
users.
Minor doc/copyright notices updates in the same files.
* Renamed CachedOutput to displayhook.DisplayHook.
* Added methods that DisplayHook.__call__ uses to do its work.
These methods can now be overridden for the ZMQ kernel.
* Removed all hooks (result_display and generate_output_prompt)
that the outputcache was using. We need to add these back in
once we figure out what to do about hooks in general.
Fernando's branch introduced the ability to run the test suite
from a top-level iptest.py script. This allowed IPython to be tested
without installation. The implementation was fragile and we also
decided that we *want* people to install IPython as part of testing
it, so we removed this feature.
* :mod:`IPython.testing.globalipapp` now directly creates a
:class:`~IPython.core.iplib.InteractiveShell` instance by passing it a
configuration object, rather than creating an IPython application.
* Updated everything in :mod:`IPython.frontend` and :mod:`IPython.gui` to use
raw :class:`~IPython.core.iplib.InteractiveShell directly rather than
creating an IPython application.
* Updated the IPython sphinx extension to use raw
:class:`~IPython.core.iplib.InteractiveShell directly rather than creating
an IPython application.
* Removed code from :mod:`IPython.extensions.pretty` that called
:func:`get_ipython` (r1271).
* Addressed comment on (r1284) about holding refs to deferreds in
:mod:`IPython.kernel.ipclusterapp`.
* Removed :mod:`IPython.kernel` from list of modules tested by nose in
:mod:`IPython.testing.iptest`. (r1318)
* Added comment about Magic(object) (r1224)
* Moved InteractiveTB.set_mode from IPythonApp -> InteractiveShell (r1229)
* Moved pylabtools.py to IPython/lib (r1229)
* Cleaned up comments and copyrights in testing (r1233)
* Added comment about ip.shell._ofind (r1237)
* Removed "Bye." from quitter (r1240).
* Refactored and removed :mod:`IPython.utils.genutils` and
:mod:`IPython.utils.platutils`. These modules have been replaced by topical
focused modules in :mod:`IPython.utils`.
* Refactored tests in :mod:`IPython.utils.tests`.
* Moved :func:`IPython.testing.tools.temp_pyfile` to :mod:`IPython.utils.io`.
* Moved :func:`IPython.testing.tools.cmd2argv` to
:func:`IPython.testing.tools.pycmd2argv` and documented the fact that this
only works with Python based command line programs.
* Created a new :func:`IPython.utils.path.get_ipython_module_path` to use
in finding paths to IPython modules.
Added a module-level INSTALLED flag, which can be set to false if the test
suite is being run in-place (without ipython having been installed at all).
This is because how we call and import things must be done differently
depending on whether the code is installed or is being run in-place. The
only ones that can know this reliably are the entry-point scripts, so those
are responsible for setting this flag.
Also made the code that validates ipython in subprocesses report errors
better, by checking stderr for errors before validating stdout output, as
anything on stderr will be likely informative of the real problem.
Now, calling:
- 'python iptest.py' from source dir or from src/IPython/testing should give
the same results
- 'python iptest.py IPython.SOMETHING' from either place should also give
the same results.
I fond some spurious warnings on Fedora, extra noise on stdout and other
small problems this commit fixes.
The test suite now runs cleanly on Fedora11 without Twisted available.
Also clean up the handling of command-line options for iptest, so that all
options given at the top-level are correctly passed to nose.
Fixes: https://bugs.launchpad.net/ipython/+bug/507079
installed.
Also activated testing.tools to be picked up by the test suite (was
excluded), this gives us a few more tests.
Status:
- On Linux, the full suite passes like before.
- On Win32, now that we have Twisted, we're seeing a few failures, because I
don't have the WinHPC server stuff. These should be easy for Brian to fix.
There are also two tests where the Skip nose exception isn't recognized by
Twisted, should also be easy. I'll file tickets for those.