sapling/tests/run.py
2009-05-28 08:48:57 +02:00

57 lines
1.4 KiB
Python

import os
import sys
import unittest
import test_util
import test_binaryfiles
import test_diff
import test_externals
import test_fetch_branches
import test_fetch_command
import test_fetch_command_regexes
import test_fetch_exec
import test_fetch_mappings
import test_fetch_renames
import test_fetch_symlinks
import test_fetch_truncated
import test_pull
import test_push_command
import test_push_renames
import test_push_dirs
import test_push_eol
import test_rebuildmeta
import test_svnwrap
import test_tags
import test_utility_commands
import test_urls
if __name__ == '__main__':
kwargs = {'descriptions': 2}
if '-v' in sys.argv:
kwargs['descriptions'] = 3
kwargs['verbosity'] = 2
# silence output when running outside nose
sys.stdout = os.tmpfile()
all = globals()
all = dict((k, v) for (k, v) in all.iteritems() if k.startswith('test_'))
del all['test_util']
args = [i for i in sys.argv[1:] if i.startswith('test')]
args = [i.split('.py')[0].replace('-', '_') for i in args]
if not args:
suite = [i[1].suite() for i in sorted(all.iteritems())]
else:
suite = []
for arg in args:
if arg not in all:
print 'test module %s not available' % arg
else:
suite.append(all[arg].suite())
runner = unittest.TextTestRunner(**kwargs)
runner.run(unittest.TestSuite(suite))