Mercurial > hgsubversion
diff tests/test_util.py @ 711:cfc7df19e4dc
test_util: add requiresoption decorator function.
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Wed, 29 Sep 2010 18:04:26 +0200 |
parents | 1f1a3a6730c1 |
children | c33293a34752 |
line wrap: on
line diff
--- a/tests/test_util.py +++ b/tests/test_util.py @@ -15,6 +15,7 @@ import urllib _rootdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) sys.path.insert(0, _rootdir) +from mercurial import cmdutil from mercurial import commands from mercurial import context from mercurial import dispatch @@ -87,6 +88,21 @@ subdir = {'truncatedhistory.svndump': '/ FIXTURES = os.path.join(os.path.abspath(os.path.dirname(__file__)), 'fixtures') +def requiresoption(option): + ''' + Decorator for test functions which require clone to accept the given option. + If the option isn't available, the test is skipped. + + Takes one argument: the required option. + ''' + def decorator(fn): + for entry in cmdutil.findcmd('clone', commands.table)[1][1]: + if entry[1] == option: + return fn + if not isinstance(option, str): + raise TypeError('requiresoption takes a string argument') + return decorator + def filtermanifest(manifest): return filter(lambda x: x not in ('.hgtags', '.hgsvnexternals', ), manifest)