diff --git a/IPython/testing/iptest.py b/IPython/testing/iptest.py index e4bc780..3f14351 100644 --- a/IPython/testing/iptest.py +++ b/IPython/testing/iptest.py @@ -83,73 +83,78 @@ have_gobject = test_for('gobject') def make_exclude(): - - # For the IPythonDoctest plugin, we need to exclude certain patterns that - # cause testing problems. We should strive to minimize the number of - # skipped modules, since this means untested code. As the testing - # machinery solidifies, this list should eventually become empty. - # These modules and packages will NOT get scanned by nose at all for tests - exclusions = [pjoin('IPython', 'external'), - pjoin('IPython', 'frontend', 'process', 'winprocess.py'), + """Make patterns of modules and packages to exclude from testing. + + For the IPythonDoctest plugin, we need to exclude certain patterns that + cause testing problems. We should strive to minimize the number of + skipped modules, since this means untested code. As the testing + machinery solidifies, this list should eventually become empty. + These modules and packages will NOT get scanned by nose at all for tests. + """ + # Simple utility to make IPython paths more readably, we need a lot of + # these below + ipjoin = lambda *paths: pjoin('IPython', *paths) + + exclusions = [ipjoin('external'), + ipjoin('frontend', 'process', 'winprocess.py'), pjoin('IPython_doctest_plugin'), - pjoin('IPython', 'quarantine'), - pjoin('IPython', 'deathrow'), - pjoin('IPython', 'testing', 'attic'), - pjoin('IPython', 'testing', 'tools'), - pjoin('IPython', 'testing', 'mkdoctests'), - pjoin('IPython', 'lib', 'inputhook'), + ipjoin('quarantine'), + ipjoin('deathrow'), + ipjoin('testing', 'attic'), + ipjoin('testing', 'tools'), + ipjoin('testing', 'mkdoctests'), + ipjoin('lib', 'inputhook'), # Config files aren't really importable stand-alone - pjoin('IPython', 'config', 'default'), - pjoin('IPython', 'config', 'profile'), + ipjoin('config', 'default'), + ipjoin('config', 'profile'), ] if not have_wx: - exclusions.append(pjoin('IPython', 'gui')) - exclusions.append(pjoin('IPython', 'frontend', 'wx')) - exclusions.append(pjoin('IPython', 'lib', 'inputhookwx')) + exclusions.append(ipjoin('gui')) + exclusions.append(ipjoin('frontend', 'wx')) + exclusions.append(ipjoin('lib', 'inputhookwx')) if not have_gtk or not have_gobject: - exclusions.append(pjoin('IPython', 'lib', 'inputhookgtk')) + exclusions.append(ipjoin('lib', 'inputhookgtk')) if not have_wx_aui: - exclusions.append(pjoin('IPython', 'gui', 'wx', 'wxIPython')) + exclusions.append(ipjoin('gui', 'wx', 'wxIPython')) if not have_objc: - exclusions.append(pjoin('IPython', 'frontend', 'cocoa')) + exclusions.append(ipjoin('frontend', 'cocoa')) if not sys.platform == 'win32': - exclusions.append(pjoin('IPython', 'utils', 'platutils_win32')) + exclusions.append(ipjoin('utils', 'platutils_win32')) # These have to be skipped on win32 because the use echo, rm, cd, etc. # See ticket https://bugs.launchpad.net/bugs/366982 if sys.platform == 'win32': - exclusions.append(pjoin('IPython', 'testing', 'plugin', 'test_exampleip')) - exclusions.append(pjoin('IPython', 'testing', 'plugin', 'dtexample')) + exclusions.append(ipjoin('testing', 'plugin', 'test_exampleip')) + exclusions.append(ipjoin('testing', 'plugin', 'dtexample')) if not os.name == 'posix': - exclusions.append(pjoin('IPython', 'utils', 'platutils_posix')) + exclusions.append(ipjoin('utils', 'platutils_posix')) if not have_pexpect: - exclusions.append(pjoin('IPython', 'scripts', 'irunner')) + exclusions.append(ipjoin('scripts', 'irunner')) # This is scary. We still have things in frontend and testing that # are being tested by nose that use twisted. We need to rethink # how we are isolating dependencies in testing. if not (have_twisted and have_zi and have_foolscap): - exclusions.append(pjoin('IPython', 'frontend', 'asyncfrontendbase')) - exclusions.append(pjoin('IPython', 'frontend', 'prefilterfrontend')) - exclusions.append(pjoin('IPython', 'frontend', 'frontendbase')) - exclusions.append(pjoin('IPython', 'frontend', 'linefrontendbase')) - exclusions.append(pjoin('IPython', 'frontend', 'tests', - 'test_linefrontend')) - exclusions.append(pjoin('IPython', 'frontend', 'tests', - 'test_frontendbase')) - exclusions.append(pjoin('IPython', 'frontend', 'tests', - 'test_prefilterfrontend')) - exclusions.append(pjoin('IPython', 'frontend', 'tests', - 'test_asyncfrontendbase')), - exclusions.append(pjoin('IPython', 'testing', 'parametric')) - exclusions.append(pjoin('IPython', 'testing', 'util')) + exclusions.extend( + [ipjoin('frontend', 'asyncfrontendbase'), + ipjoin('frontend', 'prefilterfrontend'), + ipjoin('frontend', 'frontendbase'), + ipjoin('frontend', 'linefrontendbase'), + ipjoin('frontend', 'tests', 'test_linefrontend'), + ipjoin('frontend', 'tests', 'test_frontendbase'), + ipjoin('frontend', 'tests', 'test_prefilterfrontend'), + ipjoin('frontend', 'tests', 'test_asyncfrontendbase'), + ipjoin('testing', 'parametric'), + ipjoin('testing', 'util'), + ipjoin('testing', 'tests', 'test_decorators_trial'), + ] ) # This is needed for the reg-exp to match on win32 in the ipdoctest plugin. if sys.platform == 'win32':