docs: def returns_fake(self, *args, **kwargs):
          """Set the last call to return a new :class:`fudge.Fake`.
  
          Any given arguments are passed to the :class:`fudge.Fake` constructor
  
          Take note that this is different from the cascading nature of
          other methods.  This will return an instance of the *new* Fake,
          not self, so you should be careful to store its return value in a new
          variable.
  
          I.E.::
  
              >>> session = Fake('session')
              >>> query = session.provides('query').returns_fake(name="Query")
              >>> assert query is not session
              >>> query = query.provides('one').returns(['object'])
  
              >>> session.query().one()
              ['object']
  
          """
          exp = self._get_current_call()
          endpoint = kwargs.get('name', exp.call_name)
          name = self._endpoint_name(endpoint)
          kwargs['name'] = '%s()' % name
          fake = self.__class__(*args, **kwargs)
          exp.return_val = fake
          return fake