From 94a3d6ae80680dd26fed9429fc38a1cfd9729b73 Mon Sep 17 00:00:00 2001 From: Brian Rosner Date: Fri, 4 Nov 2016 17:12:41 -0600 Subject: [PATCH] Fixed response header and status handling in DjangoTestAdapter --- rest_framework/test.py | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/rest_framework/test.py b/rest_framework/test.py index e28a95971..f6d591aed 100644 --- a/rest_framework/test.py +++ b/rest_framework/test.py @@ -86,13 +86,18 @@ if requests is not None: # Make the outgoing request via WSGI. raw_response = self.get_raw_response(request) + # Gather all response headers + response_headers = [(str(k), str(v)) for k, v in raw_response.items()] + for c in raw_response.cookies.values(): + response_headers.append((str('Set-Cookie'), str(c.output(header='')))) + # Build the underlying urllib3.HTTPResponse raw_kwargs['status'] = raw_response.status_code - raw_kwargs['reason'] = raw_response.status_text - raw_kwargs['headers'] = raw_response.items() + raw_kwargs['reason'] = raw_response.reason_phrase + raw_kwargs['headers'] = response_headers raw_kwargs['version'] = 11 raw_kwargs['preload_content'] = False - raw_kwargs['original_response'] = MockOriginalResponse(raw_response.items()) + raw_kwargs['original_response'] = MockOriginalResponse(response_headers) raw_kwargs['body'] = io.BytesIO(raw_response.content) raw = requests.packages.urllib3.HTTPResponse(**raw_kwargs)