from distutils.errors import DistutilsOptionError from setuptools.command import test class TestCommand(test.test): """A derivative of the setuptools test command that automatically scans the main package for tests.""" user_options = [ ('packages=', 'p', "Run tests in package"), ('regex=', 'r', 'Search filenames/testnames for a regular expression') ] packages = None regex = None def finalize_options(self): import collector if self.packages is None: self.packages = self.distribution.packages elif isinstance(self.packages, str): self.packages = [self.packages] package = self.packages[0] mod = __import__(package, {}, {}) mod.test_suite = collector.Collector(package, self.regex) self.test_module = package test.test.finalize_options(self)