From f6ea2b15b81eb3e5be21f155e45d81b865f3dc18 Mon Sep 17 00:00:00 2001 From: ianb Date: Wed, 16 Aug 2006 04:03:35 +0000 Subject: Apply the fix from the last commit properly (headers in request) --- paste/fixture.py | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) (limited to 'paste/fixture.py') diff --git a/paste/fixture.py b/paste/fixture.py index c161c70..a20412e 100644 --- a/paste/fixture.py +++ b/paste/fixture.py @@ -171,8 +171,6 @@ class TestApp(object): Returns a `response object `_ """ - if headers is None: - headers = {} if extra_environ is None: extra_environ = {} # Hide from py.test: @@ -186,19 +184,12 @@ class TestApp(object): url += '?' url += params environ = self._make_environ() - for header, value in headers.items(): - if header.lower() == 'content-type': - var = 'CONTENT_TYPE' - elif header.lower() == 'content-length': - var = 'CONTENT_LENGTH' - else: - var = 'HTTP_%s' % header.replace('-', '_').upper() - environ[var] = value url = str(url) if '?' in url: url, environ['QUERY_STRING'] = url.split('?', 1) else: environ['QUERY_STRING'] = '' + self._set_headers(headers, environ) environ.update(extra_environ) req = TestRequest(url, environ, expect_errors) return self.do_request(req, status=status) @@ -237,12 +228,26 @@ class TestApp(object): environ['CONTENT_LENGTH'] = str(len(params)) environ['REQUEST_METHOD'] = 'POST' environ['wsgi.input'] = StringIO(params) - for header, value in headers.items(): - environ['HTTP_%s' % header.replace('-', '_').upper()] = value + self._set_headers(headers, environ) environ.update(extra_environ) req = TestRequest(url, environ, expect_errors) return self.do_request(req, status=status) + def _set_headers(self, headers, environ): + """ + Turn any headers into environ variables + """ + if not headers: + return + for header, value in headers.items(): + if header.lower() == 'content-type': + var = 'CONTENT_TYPE' + elif header.lower() == 'content-length': + var = 'CONTENT_LENGTH' + else: + var = 'HTTP_%s' % header.replace('-', '_').upper() + environ[var] = value + def encode_multipart(self, params, files): """ Encodes a set of parameters (typically a name/value list) and -- cgit v1.2.1