summaryrefslogtreecommitdiff
path: root/cmdtest
diff options
context:
space:
mode:
authorLars Wirzenius <liw@liw.fi>2011-10-07 12:05:58 +0100
committerLars Wirzenius <liw@liw.fi>2011-10-07 12:05:58 +0100
commitb85a38056aa5b6ca256a579c3c7616491e629df4 (patch)
tree826ca5f8a7ea7dc6df4022d4e30fb708502d509f /cmdtest
parent95b19ae0eff9483b53b1359e4aed2443a609b09c (diff)
downloadcmdtest-b85a38056aa5b6ca256a579c3c7616491e629df4.tar.gz
Add -t/--test option for running only specific tests.
Diffstat (limited to 'cmdtest')
-rwxr-xr-xcmdtest17
1 files changed, 16 insertions, 1 deletions
diff --git a/cmdtest b/cmdtest
index b752948..62ea3b0 100755
--- a/cmdtest
+++ b/cmdtest
@@ -19,6 +19,7 @@ __version__ = '0.0'
import cliapp
+import glob
import logging
import os
import shutil
@@ -48,6 +49,9 @@ class CommandTester(cliapp.Application):
'necessary)',
metavar='COMMAND',
default=None)
+ self.settings.string_list(['test', 't'],
+ 'run only TEST (can be given many times)',
+ metavar='TEST')
def process_args(self, dirnames):
self.settings.require('command')
@@ -86,9 +90,20 @@ class CommandTester(cliapp.Application):
def load_tests(self, dirnames):
td = cmdtestlib.TestDir()
for dirname in dirnames:
- td.scan(dirname)
+ if self.settings['test']:
+ filenames = self.find_requested_tests(dirname)
+ td.scan(dirname, filenames)
+ else:
+ td.scan(dirname)
return td
+ def find_requested_tests(self, dirname):
+ filenames = []
+ for test in self.settings['test']:
+ matches = glob.glob(os.path.join(dirname, test + '.*'))
+ filenames += [os.path.basename(x) for x in matches]
+ return filenames
+
def setup_tempdir(self):
self.tempdir = tempfile.mkdtemp()
logging.info('Temporary directory %s' % self.tempdir)