From 09b2ea3369df967309f030f9196c2f9861bc1b2c Mon Sep 17 00:00:00 2001 From: Simon Poirier Date: Sun, 27 Sep 2009 19:08:24 +0000 Subject: -t option to test runner. added prototype viewer under tests --- (limited to 'setup.py') diff --git a/setup.py b/setup.py index df9b92d..9362dc7 100755 --- a/setup.py +++ b/setup.py @@ -10,14 +10,19 @@ class TestCommand(Command): user_options = [('coverage', None, 'enable code coverage reporting'), - ('prefix=', + ('prefix=', 'p', - 'set sugar installation prefix, for dependency loading'),] + 'set sugar installation prefix, for dependency loading'), + ('single=', + 't', + 'run a single test'), + ] description = 'runs tests from the test directory' def initialize_options(self): self._dir = os.getcwd() self.coverage = False + self.single = False self.prefix = None def finalize_options(self): @@ -33,6 +38,7 @@ class TestCommand(Command): 'python%d.%d'%sys.version_info[:2], 'site-packages') sys.path.insert(1, prefix) + os.environ.setdefault('SUGAR_PREFIX', self.prefix) if self.coverage: import coverage coverage.erase() @@ -40,15 +46,23 @@ class TestCommand(Command): loader = TestLoader() suite = TestSuite() - skipped = file('tests/skip', 'r').read().split('\n') - for t in glob.glob(pjoin(self._dir, 'tests', '*.py')): - if not t.endswith('__init__.py') and basename(t) not in skipped: - modname = '.'.join(['tests', splitext(basename(t))[0]]) - mod = __import__(modname, {'sys':sys}, fromlist=[modname]) - print "loading %s" % modname - suite.addTest(loader.loadTestsFromModule(mod)) - else: - print "skipping %s" % t + if not self.single: + skipped = file('tests/skip', 'r').read().split('\n') + for t in glob.glob(pjoin(self._dir, 'tests', '*.py')): + if not t.endswith('__init__.py') and basename(t) not in skipped: + modname = '.'.join(['tests', splitext(basename(t))[0]]) + mod = __import__(modname, {'sys':sys}, fromlist=[modname]) + print "loading %s" % modname + suite.addTest(loader.loadTestsFromModule(mod)) + else: + print "skipping %s" % t + else: + modname = '.'.join(['tests', self.single]) + mod = __import__(modname, {'sys':sys}, fromlist=[modname]) + print "loading %s" % modname + suite.addTest(loader.loadTestsFromModule(mod)) + + t = TextTestRunner(verbosity = 1) t.run(suite) -- cgit v0.9.1