def get_response(self, request): """ Need to override this so we can pass decode_content=False """ if not isinstance(request, Request): url = urlparse(request.url) if request.body is None: body = None elif isinstance(request.body, six.text_type): body = six.BytesIO(six.b(request.body)) elif hasattr(request.body, "read"): body = six.BytesIO(request.body.read()) else: body = six.BytesIO(request.body) req = Request.from_values( path="?".join([url.path, url.query]), input_stream=body, content_length=request.headers.get("Content-Length"), content_type=request.headers.get("Content-Type"), method=request.method, base_url="{scheme}://{netloc}".format( scheme=url.scheme, netloc=url.netloc ), headers=[(k, v) for k, v in six.iteritems(request.headers)], ) request = req headers = self.get_headers() result = self.callback(request) if isinstance(result, Exception): raise result status, r_headers, body = result body = responses._handle_body(body) headers.update(r_headers) return responses.HTTPResponse( status=status, reason=six.moves.http_client.responses.get(status), body=body, headers=headers, preload_content=False, # Need to not decode_content to mimic requests decode_content=False, )
def get_response(self, request): ''' Need to override this so we can pass decode_content=False ''' headers = self.get_headers() result = self.callback(request) if isinstance(result, Exception): raise result status, r_headers, body = result body = responses._handle_body(body) headers.update(r_headers) return responses.HTTPResponse( status=status, reason=six.moves.http_client.responses.get(status), body=body, headers=headers, preload_content=False, # Need to not decode_content to mimic requests decode_content=False, )
def get_response(self, request): ''' Need to override this so we can pass decode_content=False ''' headers = self.get_headers() result = self.callback(request) if isinstance(result, Exception): raise result status, r_headers, body = result body = responses._handle_body(body) headers.update(r_headers) return responses.HTTPResponse( status=status, reason=six.moves.http_client.responses.get(status), body=body, headers=headers, preload_content=False, # Need to not decode_content to mimic requests decode_content=False, )