# HG changeset patch # User Augie Fackler # Date 1286055877 18000 # Node ID 38ebf7714cdfb50f58b09f4e1dc44f847dd3a46d # Parent c33293a347525f6279a98ddc411deb9589fd01b7 requiresoption: raise SkipTest if available This has the unfortunate (I guess?) side effect that you can no longer use pure unittest to run skipped tests if nose or unittest2 is installed. diff --git a/tests/test_util.py b/tests/test_util.py --- a/tests/test_util.py +++ b/tests/test_util.py @@ -25,6 +25,14 @@ from mercurial import node from mercurial import ui from mercurial import extensions +try: + from unittest2 import SkipTest +except ImportError: + try: + from nose import SkipTest + except ImportError: + SkipTest = None + from hgsubversion import util # Documentation for Subprocess.Popen() says: @@ -94,6 +102,14 @@ def requiresoption(option): for entry in cmdutil.findcmd('clone', commands.table)[1][1]: if entry[1] == option: return fn + # no match found, so skip + if SkipTest: + def skip(*args, **kwargs): + raise SkipTest('test requires clone to accept %s' % option) + skip.__name__ = fn.__name__ + return skip + # no skipping support, so erase decorated method + return if not isinstance(option, str): raise TypeError('requiresoption takes a string argument') return decorator