human
Solve the following python programming problem given the following code:
@debtcollector.removals.remove(message='use    testtools.skipIf    instead', removal_version='Queens')
def skip_if_config(*args):
assistant
#Here is the Python program you requested.

    """Raise a skipException if a config exists and is True
    :param str group: The first arg, the option group to check
    :param str name: The second arg, the option name to check
    :param str msg: Optional third arg, the skip msg to use if a skip is raised
    :raises testtools.TestCase.skipException: If the specified config option
    exists and evaluates to True
    """
    def decorator(f):
        group = args[0]
        name = args[1]
        @functools.wraps(f)
        def wrapper(self, *func_args, **func_kwargs):
            if hasattr(CONF, group):
                conf_group = getattr(CONF, group)
                if hasattr(conf_group, name):
                    value = getattr(conf_group, name)
                    if 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