Mercurial > hgsubversion
view tests/run.py @ 430:2851b81c65ce
maps: make sure AuthorMaps don't overwrite themselves, fix overriding
Author maps for the Python repo got truncated because of the author map stupidly
writing upon itself. This patch implements a better and faster scenario, where
entries will only be written to the saved author map if they're not coming from that
file. They're also now streamed into the file directly, instead of having to re-open
the file on every entry, and formatting is preserved.
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Mon, 15 Jun 2009 16:09:27 +0200 |
parents | 72e63999722f |
children | f3e5ef8760cb |
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_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) runner.run(unittest.TestSuite(suite))