human
Complete this python program:
def knownfailureif(fail_condition, msg=None):
assistant
#Here is the Python program you requested.

    """Make function raise KnownFailureTest exception if given condition is true.
    Parameters
    fail_condition : bool
    Flag to determine whether to mark the decorated test as a known
    failure (if True) or not (if False).
    msg : str, optional
    Message to give on raising a KnownFailureTest exception.
    Default is None.
    Returns
    decorator : function
    Decorator, which, when applied to a function, causes KnownFailureTest to
    be raised when `fail_condition` is True and the test fails.
    Notes
    The decorator itself is decorated with the ``nose.tools.make_decorator``
    function in order to transmit function name, and various other metadata.
    """
    if (msg is None):
        msg = 'Test    skipped    due    to    known    failure'
    def knownfail_decorator(f):
        import nose
        def knownfailer(*args, **kwargs):
            if fail_condition:
                raise KnownFailureTest(msg)
            else:
                return f(*args, **kwargs)
        return nose.tools.make_decorator(f)(knownfailer)
    return knownfail_decorator