diff --git a/IPython/testing/iptest.py b/IPython/testing/iptest.py index 690d388..5df454d 100644 --- a/IPython/testing/iptest.py +++ b/IPython/testing/iptest.py @@ -48,9 +48,10 @@ from nose.core import TestProgram # Our own imports from IPython.utils.importstring import import_item -from IPython.utils.path import get_ipython_module_path +from IPython.utils.path import get_ipython_module_path, get_ipython_package_dir from IPython.utils.process import find_cmd, pycmd2argv from IPython.utils.sysinfo import sys_info +from IPython.utils.warn import warn from IPython.testing import globalipapp from IPython.testing.plugin.ipdoctest import IPythonDoctest @@ -212,10 +213,8 @@ def make_exclude(): ipjoin = lambda *paths: pjoin('IPython', *paths) exclusions = [ipjoin('external'), - pjoin('IPython_doctest_plugin'), ipjoin('quarantine'), ipjoin('deathrow'), - ipjoin('testing', 'attic'), # This guy is probably attic material ipjoin('testing', 'mkdoctests'), # Testing inputhook will need a lot of thought, to figure out @@ -223,7 +222,6 @@ def make_exclude(): # loops in the picture ipjoin('lib', 'inputhook'), # Config files aren't really importable stand-alone - ipjoin('config', 'default'), ipjoin('config', 'profile'), ] if not have['sqlite3']: @@ -280,6 +278,13 @@ def make_exclude(): # This is needed for the reg-exp to match on win32 in the ipdoctest plugin. if sys.platform == 'win32': exclusions = [s.replace('\\','\\\\') for s in exclusions] + + # check for any exclusions that don't seem to exist: + parent, _ = os.path.split(get_ipython_package_dir()) + for exclusion in exclusions: + fullpath = pjoin(parent, exclusion) + if not os.path.exists(fullpath) and not os.path.exists(fullpath + '.py'): + warn("Excluding nonexistent file: %r\n" % exclusion) return exclusions