Optionally mock a decorator that takes parameters

    E.g.:

    @blah(stuff=True)
    def things():
        pass

def mock_decorator_with_params(*oargs, **okwargs):  # pylint: disable=unused-argument
    '''
    Optionally mock a decorator that takes parameters

    E.g.:

    @blah(stuff=True)
    def things():
        pass
    '''
    def inner(fn, *iargs, **ikwargs):  # pylint: disable=unused-argument
        if hasattr(fn, '__call__'):
            return fn
        return Mock()
    return inner