summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRussell Keith-Magee <russell@keith-magee.com>2008-11-12 11:19:37 +0000
committerRussell Keith-Magee <russell@keith-magee.com>2008-11-12 11:19:37 +0000
commitecc1ed4ce1faa0b052ddd31487d24a4f9f9ea37a (patch)
treeb66a55daba51615291130c8856cbee92b798b8b6
parentcb6a5886f6ccc0272288dba0f8b4c15a81100bf3 (diff)
Fixed #8646 -- Modified test client to set a fully WSGI compliant environment. Thanks to Adam Lofts for the report.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@9396 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/test/client.py19
1 files changed, 12 insertions, 7 deletions
diff --git a/django/test/client.py b/django/test/client.py
index 0cb8db3f4e..e1d73aa476 100644
--- a/django/test/client.py
+++ b/django/test/client.py
@@ -158,6 +158,7 @@ class Client(object):
self.defaults = defaults
self.cookies = SimpleCookie()
self.exc_info = None
+ self.errors = StringIO()
def store_exc_info(self, **kwargs):
"""
@@ -193,6 +194,12 @@ class Client(object):
'SERVER_NAME': 'testserver',
'SERVER_PORT': '80',
'SERVER_PROTOCOL': 'HTTP/1.1',
+ 'wsgi.version': (1,0),
+ 'wsgi.url_scheme': 'http',
+ 'wsgi.errors': self.errors,
+ 'wsgi.multiprocess': True,
+ 'wsgi.multithread': False,
+ 'wsgi.run_once': False,
}
environ.update(self.defaults)
environ.update(request)
@@ -254,11 +261,11 @@ class Client(object):
Requests a response from the server using GET.
"""
r = {
- 'CONTENT_LENGTH': None,
'CONTENT_TYPE': 'text/html; charset=utf-8',
'PATH_INFO': urllib.unquote(path),
'QUERY_STRING': urlencode(data, doseq=True),
'REQUEST_METHOD': 'GET',
+ 'wsgi.input': FakePayload('')
}
r.update(extra)
@@ -289,11 +296,11 @@ class Client(object):
Request a response from the server using HEAD.
"""
r = {
- 'CONTENT_LENGTH': None,
'CONTENT_TYPE': 'text/html; charset=utf-8',
'PATH_INFO': urllib.unquote(path),
'QUERY_STRING': urlencode(data, doseq=True),
'REQUEST_METHOD': 'HEAD',
+ 'wsgi.input': FakePayload('')
}
r.update(extra)
@@ -304,11 +311,10 @@ class Client(object):
Request a response from the server using OPTIONS.
"""
r = {
- 'CONTENT_LENGTH': None,
- 'CONTENT_TYPE': None,
'PATH_INFO': urllib.unquote(path),
'QUERY_STRING': urlencode(data, doseq=True),
'REQUEST_METHOD': 'OPTIONS',
+ 'wsgi.input': FakePayload('')
}
r.update(extra)
@@ -338,11 +344,10 @@ class Client(object):
Send a DELETE request to the server.
"""
r = {
- 'CONTENT_LENGTH': None,
- 'CONTENT_TYPE': None,
'PATH_INFO': urllib.unquote(path),
'REQUEST_METHOD': 'DELETE',
- }
+ 'wsgi.input': FakePayload('')
+ }
r.update(extra)
return self.request(**r)