def skip(*args, **kwargs):
    def decorator(f):
        @functools.wraps(f)
        def wrapper(*func_args, **func_kwargs):
            if "bug" in kwargs:
                msg = "Skipped until Bug %s is resolved." % kwargs["bug"]
            else:
                msg = kwargs["msg"]
            raise testtools.TestCase.skipException(msg)
        return wrapper
    return decorator
Test that exceptions are properly handled in chain flows.
dataset/ETHPy150Open openstack/ec2-api/ec2api/tests/functional/obsolete/base.py/skip--crossover with--dataset/ETHPy150Open google/grr/grr/lib/flow_test.py/GeneralFlowsTest.testBrokenChainedFlow