def fake_function(*args, **kwargs):
    # Must define __name__ to be compatible with function wrapping mechanisms
    # like @wraps().
    if 'callable' not in kwargs and 'expect_call' not in kwargs:
        kwargs['callable'] = True
    return Fake(*args, **kwargs).has_attr(__name__='fake')



#
# @task
#
Returns a ``fudge.Fake`` exhibiting function-like attributes.
dataset/ETHPy150Open fabric/fabric/tests/test_decorators.py/fake_function