Mercurial > hgsubversion
comparison 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 |
comparison
equal
deleted
inserted
replaced
| 710:db56e65906f4 | 711:cfc7df19e4dc |
|---|---|
| 13 import urllib | 13 import urllib |
| 14 | 14 |
| 15 _rootdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) | 15 _rootdir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) |
| 16 sys.path.insert(0, _rootdir) | 16 sys.path.insert(0, _rootdir) |
| 17 | 17 |
| 18 from mercurial import cmdutil | |
| 18 from mercurial import commands | 19 from mercurial import commands |
| 19 from mercurial import context | 20 from mercurial import context |
| 20 from mercurial import dispatch | 21 from mercurial import dispatch |
| 21 from mercurial import hg | 22 from mercurial import hg |
| 22 from mercurial import i18n | 23 from mercurial import i18n |
| 84 'project_name_with_space.svndump': '/project name', | 85 'project_name_with_space.svndump': '/project name', |
| 85 } | 86 } |
| 86 | 87 |
| 87 FIXTURES = os.path.join(os.path.abspath(os.path.dirname(__file__)), | 88 FIXTURES = os.path.join(os.path.abspath(os.path.dirname(__file__)), |
| 88 'fixtures') | 89 'fixtures') |
| 90 | |
| 91 def requiresoption(option): | |
| 92 ''' | |
| 93 Decorator for test functions which require clone to accept the given option. | |
| 94 If the option isn't available, the test is skipped. | |
| 95 | |
| 96 Takes one argument: the required option. | |
| 97 ''' | |
| 98 def decorator(fn): | |
| 99 for entry in cmdutil.findcmd('clone', commands.table)[1][1]: | |
| 100 if entry[1] == option: | |
| 101 return fn | |
| 102 if not isinstance(option, str): | |
| 103 raise TypeError('requiresoption takes a string argument') | |
| 104 return decorator | |
| 89 | 105 |
| 90 def filtermanifest(manifest): | 106 def filtermanifest(manifest): |
| 91 return filter(lambda x: x not in ('.hgtags', '.hgsvnexternals', ), | 107 return filter(lambda x: x not in ('.hgtags', '.hgsvnexternals', ), |
| 92 manifest) | 108 manifest) |
| 93 | 109 |
