diff --git a/IPython/testing/iptest.py b/IPython/testing/iptest.py new file mode 100644 index 0000000..262ef28 --- /dev/null +++ b/IPython/testing/iptest.py @@ -0,0 +1,53 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +"""IPython Test Suite Runner. +""" + +import sys +import warnings + +from nose.core import TestProgram +import nose.plugins.builtin + +from IPython.testing.plugin.ipdoctest import IPythonDoctest + +def main(): + """Run the IPython test suite. + """ + + warnings.filterwarnings('ignore', + 'This will be removed soon. Use IPython.testing.util instead') + + + # construct list of plugins, omitting the existing doctest plugin + plugins = [IPythonDoctest()] + for p in nose.plugins.builtin.plugins: + plug = p() + if plug.name == 'doctest': + continue + + #print 'adding plugin:',plug.name # dbg + plugins.append(plug) + + argv = sys.argv + ['--doctest-tests','--doctest-extension=txt', + '--detailed-errors', + + # We add --exe because of setuptools' imbecility (it + # blindly does chmod +x on ALL files). Nose does the + # right thing and it tries to avoid executables, + # setuptools unfortunately forces our hand here. This + # has been discussed on the distutils list and the + # setuptools devs refuse to fix this problem! + '--exe', + ] + + has_ip = False + for arg in sys.argv: + if 'IPython' in arg: + has_ip = True + break + + if not has_ip: + argv.append('IPython') + + TestProgram(argv=argv,plugins=plugins)