diff options
author | ianb <devnull@localhost> | 2006-08-16 04:03:35 +0000 |
---|---|---|
committer | ianb <devnull@localhost> | 2006-08-16 04:03:35 +0000 |
commit | f6ea2b15b81eb3e5be21f155e45d81b865f3dc18 (patch) | |
tree | a1e5cd363b5b3e93bcb8e68c4afab59800ed69ff /paste/fixture.py | |
parent | 7e8e04fec7bf7501db34fbdfb0245e33eec2e4af (diff) | |
download | paste-f6ea2b15b81eb3e5be21f155e45d81b865f3dc18.tar.gz |
Apply the fix from the last commit properly (headers in request)
Diffstat (limited to 'paste/fixture.py')
-rw-r--r-- | paste/fixture.py | 29 |
1 files changed, 17 insertions, 12 deletions
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 <class-paste.fixture.TestResponse.html>`_ """ - 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 |