diff --git a/IPython/testing/iptest.py b/IPython/testing/iptest.py index 3f8decc..3a14294 100644 --- a/IPython/testing/iptest.py +++ b/IPython/testing/iptest.py @@ -355,7 +355,7 @@ class IPTester(object): # Find the section we're testing (IPython.foo) for sect in self.params: - if sect.startswith('IPython'): break + if sect.startswith('IPython') or sect in special_test_suites: break else: raise ValueError("Section not found", self.params) @@ -429,6 +429,10 @@ class IPTester(object): # The process did not die... print('... failed. Manual cleanup may be required.') + +special_test_suites = { + 'autoreload': ['IPython.extensions.autoreload', 'IPython.extensions.tests.test_autoreload'], +} def make_runners(inc_slow=False): """Define the top-level packages that need to be tested. @@ -458,6 +462,9 @@ def make_runners(inc_slow=False): # Make runners runners = [ (v, IPTester('iptest', params=v)) for v in nose_packages ] + + for name in special_test_suites: + runners.append((name, IPTester('iptest', params=name))) return runners @@ -475,6 +482,12 @@ def run_iptest(): warnings.filterwarnings('ignore', 'This will be removed soon. Use IPython.testing.util instead') + + if sys.argv[1] in special_test_suites: + sys.argv[1:2] = special_test_suites[sys.argv[1]] + special_suite = True + else: + special_suite = False argv = sys.argv + [ '--detailed-errors', # extra info in tracebacks @@ -505,7 +518,8 @@ def run_iptest(): # use our plugin for doctesting. It will remove the standard doctest plugin # if it finds it enabled - plugins = [IPythonDoctest(make_exclude()), KnownFailure()] + ipdt = IPythonDoctest() if special_suite else IPythonDoctest(make_exclude()) + plugins = [ipdt, KnownFailure()] # We need a global ipython running in this process, but the special # in-process group spawns its own IPython kernels, so for *that* group we @@ -593,7 +607,7 @@ def run_iptestall(inc_slow=False): def main(): for arg in sys.argv[1:]: - if arg.startswith('IPython'): + if arg.startswith('IPython') or arg in special_test_suites: # This is in-process run_iptest() else: