def METHOD_NAME(self, path, basic=None, env=None, extra=None,
            request_method='GET', stdin=None, handle_errors=True):
    '''Publishes the object at 'path' returning a response object.'''
    from io import BytesIO
    from ZPublisher.HTTPRequest import WSGIRequest as Request
    from ZPublisher.HTTPResponse import WSGIResponse
    from ZPublisher.WSGIPublisher import publish_module
    # Commit the sandbox for good measure
    transaction.commit()
    if env is None:
        env = {}
    if extra is None:
        extra = {}
    request = self.app.REQUEST
    env['SERVER_NAME'] = request['SERVER_NAME']
    env['SERVER_PORT'] = request['SERVER_PORT']
    env['SERVER_PROTOCOL'] = 'HTTP/1.1'
    env['REQUEST_METHOD'] = request_method
    query = ''
    if '?' in path:
        path, query = path.split("?", 1)
    env['PATH_INFO'] = unquote_to_bytes(path).decode('latin-1')
    env['QUERY_STRING'] = query
    if basic:
        env['HTTP_AUTHORIZATION'] = basic_auth_encode(basic)
    if not handle_errors:
        # Tell the publisher to skip exception views
        env['x-wsgiorg.throw_errors'] = True
    if stdin is None:
        stdin = BytesIO()
    env['wsgi.input'] = stdin
    outstream = BytesIO()
    response = WSGIResponse(stdout=outstream, stderr=sys.stderr)
    def request_factory(*args):
        request = Request(*args)
        for k, v in extra.items():
            request[k] = v
        return request
    wsgi_headers = BytesIO()
    def start_response(status, headers):
        # Keep the fake response in-sync with the actual values
        # from the WSGI start_response call.
        response.setStatus(status.split()[0])
        for key, value in headers:
            response.setHeader(key, value)
        wsgi_headers.write(
            b'HTTP/1.1 ' + status.encode('ascii') + b'\r\n')
        headers = b'\r\n'.join([
            (k + ': ' + v).encode('ascii') for k, v in headers])
        wsgi_headers.write(headers)
        wsgi_headers.write(b'\r\n\r\n')
    METHOD_NAME = partial(
        publish_module,
        _request_factory=request_factory,
        _response=response)
    if handle_errors:
        METHOD_NAME = HTTPExceptionHandler(METHOD_NAME)
    wsgi_result = METHOD_NAME(env, start_response)
    return ResponseWrapper(response, outstream, path,
                           wsgi_result, wsgi_headers)