'Fake request handler.
Requests made via this connection actually get translated and
routed into our WSGI app, we then wait for the response and turn
it back into an `http_client.HTTPResponse`.'

def request(self, method, path, body='', headers=None):

    if (not headers):
        headers = {}
    req = webob.Request.blank(path)
    req.method = method
    req.headers = headers
    req.host = self.host
    req.body = body
    resp = str(req.get_response(self.app))
    resp = ('HTTP/1.0    %s' % resp)
    sock = FakeHttplibSocket(resp)
    self.http_response = http_client.HTTPResponse(sock)
    self.http_response.begin()
