human
I wrote the below code

    def decorator(f):
        group = args[0]
        name = args[1]
        @functools.wraps(f)
        def wrapper(self, *func_args, **func_kwargs):
            if (not hasattr(CONF, group)):
                msg = ("Config    group    %s    doesn't    exist" % group)
                raise testtools.TestCase.skipException(msg)
            conf_group = getattr(CONF, group)
            if (not hasattr(conf_group, name)):
                msg = ("Config    option    %s.%s    doesn't    exist" % (group, name))
                raise testtools.TestCase.skipException(msg)
            value = getattr(conf_group, name)
            if (not value):
                if (len(args) == 3):
                    msg = args[2]
                else:
                    msg = ('Config    option    %s.%s    is    false' % (group, name))
                raise testtools.TestCase.skipException(msg)
            return f(self, *func_args, **func_kwargs)
        return wrapper
    return decorator

What's a good function header?
assistant
#Here's a good function header.

@debtcollector.removals.remove(message='use    testtools.skipUnless    instead', removal_version='Queens')
def skip_unless_config(*args):