summaryrefslogtreecommitdiff
path: root/paste/fixture.py
diff options
context:
space:
mode:
authorianb <devnull@localhost>2006-08-16 04:03:35 +0000
committerianb <devnull@localhost>2006-08-16 04:03:35 +0000
commitf6ea2b15b81eb3e5be21f155e45d81b865f3dc18 (patch)
treea1e5cd363b5b3e93bcb8e68c4afab59800ed69ff /paste/fixture.py
parent7e8e04fec7bf7501db34fbdfb0245e33eec2e4af (diff)
downloadpaste-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.py29
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