Mercurial > hgsubversion
view tests/run.py @ 577:930bb6df19a0
tests: make sure single dir clone tests get run by non-nose users
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Fri, 26 Feb 2010 14:52:50 +0100 |
parents | f3e5ef8760cb |
children | 300b917d23c5 |
line wrap: on
line source
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_single_dir_clone import test_svnwrap import test_tags import test_utility_commands import test_urls sys.path.append(os.path.join(os.path.dirname(__file__), 'comprehensive')) import test_stupid_pull import test_verify def comprehensive(mod): dir = os.path.basename(os.path.dirname(mod.__file__)) return dir == 'comprehensive' 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: check = lambda x: '-A' in sys.argv or not comprehensive(x) mods = [m for (n, m) in sorted(all.iteritems()) if check(m)] suite = [m.suite() for m in mods] else: suite = [] for arg in args: if arg not in all: print >> sys.stderr, 'test module %s not available' % arg else: suite.append(all[arg].suite()) runner = unittest.TextTestRunner(**kwargs) result = runner.run(unittest.TestSuite(suite)) if not result.wasSuccessful(): sys.exit(1)