diff options
Diffstat (limited to 'django/test/mocks.py')
| -rw-r--r-- | django/test/mocks.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/django/test/mocks.py b/django/test/mocks.py new file mode 100644 index 0000000000..94048a2a2a --- /dev/null +++ b/django/test/mocks.py @@ -0,0 +1,38 @@ +from django.test import Client +from django.core.handlers.wsgi import WSGIRequest + +class RequestFactory(Client): + """ + Class that lets you create mock Request objects for use in testing. + + Usage: + + rf = RequestFactory() + get_request = rf.get('/hello/') + post_request = rf.post('/submit/', {'foo': 'bar'}) + + This class re-uses the django.test.client.Client interface, docs here: + http://www.djangoproject.com/documentation/testing/#the-test-client + + Once you have a request object you can pass it to any view function, + just as if that view had been hooked up using a URLconf. + + """ + def request(self, **request): + """ + Similar to parent class, but returns the request object as soon as it + has created it. + """ + environ = { + 'HTTP_COOKIE': self.cookies, + 'PATH_INFO': '/', + 'QUERY_STRING': '', + 'REQUEST_METHOD': 'GET', + 'SCRIPT_NAME': '', + 'SERVER_NAME': 'testserver', + 'SERVER_PORT': 80, + 'SERVER_PROTOCOL': 'HTTP/1.1', + } + environ.update(self.defaults) + environ.update(request) + return WSGIRequest(environ) |
