def prepare_test_args(self, label='fast', verbose=1, extra_argv=None, doctests=False, coverage=False, timer=False): """ Run tests for module using nose. This method does the heavy lifting for the `test` method. It takes all the same arguments, for details see `test`. See Also -------- test """ # fail with nice error message if nose is not present import_nose() # compile argv argv = self._test_argv(label, verbose, extra_argv) # our way of doing coverage if coverage: argv += ['--cover-package=%s' % self.package_name, '--with-coverage', '--cover-tests', '--cover-erase'] if timer: if timer is True: argv += ['--with-timer'] elif isinstance(timer, int): argv += ['--with-timer', '--timer-top-n', str(timer)] # construct list of plugins import nose.plugins.builtin from nose.plugins import EntryPointPluginManager from .noseclasses import KnownFailurePlugin, Unplugger plugins = [KnownFailurePlugin()] plugins += [p() for p in nose.plugins.builtin.plugins] try: # External plugins (like nose-timer) entrypoint_manager = EntryPointPluginManager() entrypoint_manager.loadPlugins() plugins += [p for p in entrypoint_manager.plugins] except ImportError: # Relies on pkg_resources, not a hard dependency pass # add doctesting if required doctest_argv = '--with-doctest' in argv if doctests == False and doctest_argv: doctests = True plug = self._get_custom_doctester() if plug is None: # use standard doctesting if doctests and not doctest_argv: argv += ['--with-doctest'] else: # custom doctesting if doctest_argv: # in fact the unplugger would take care of this argv.remove('--with-doctest') plugins += [Unplugger('doctest'), plug] if doctests: argv += ['--with-' + plug.name] return argv, plugins
def prepare_test_args(self, label='fast', verbose=1, extra_argv=None, doctests=False, coverage=False, timer=False): """ Run tests for module using nose. This method does the heavy lifting for the `test` method. It takes all the same arguments, for details see `test`. See Also -------- test """ # fail with nice error message if nose is not present import_nose() # compile argv argv = self._test_argv(label, verbose, extra_argv) # our way of doing coverage if coverage: argv += [ '--cover-package=%s' % self.package_name, '--with-coverage', '--cover-tests', '--cover-erase' ] if timer: if timer is True: argv += ['--with-timer'] elif isinstance(timer, int): argv += ['--with-timer', '--timer-top-n', str(timer)] # construct list of plugins import nose.plugins.builtin from nose.plugins import EntryPointPluginManager from .noseclasses import (KnownFailurePlugin, Unplugger, FPUModeCheckPlugin) plugins = [KnownFailurePlugin()] plugins += [p() for p in nose.plugins.builtin.plugins] if self.check_fpu_mode: plugins += [FPUModeCheckPlugin()] argv += ["--with-fpumodecheckplugin"] try: # External plugins (like nose-timer) entrypoint_manager = EntryPointPluginManager() entrypoint_manager.loadPlugins() plugins += [p for p in entrypoint_manager.plugins] except ImportError: # Relies on pkg_resources, not a hard dependency pass # add doctesting if required doctest_argv = '--with-doctest' in argv if doctests == False and doctest_argv: doctests = True plug = self._get_custom_doctester() if plug is None: # use standard doctesting if doctests and not doctest_argv: argv += ['--with-doctest'] else: # custom doctesting if doctest_argv: # in fact the unplugger would take care of this argv.remove('--with-doctest') plugins += [Unplugger('doctest'), plug] if doctests: argv += ['--with-' + plug.name] return argv, plugins