aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests/utils.py
diff options
context:
space:
mode:
authorTom Christie2013-01-02 13:47:58 +0000
committerTom Christie2013-01-02 13:47:58 +0000
commit438c2cac1bcd5ac24ea83bc75deb12b8584b906a (patch)
treeebd6727f2d95813f3e6efd4de07a7027e236ef31 /rest_framework/tests/utils.py
parentd379997aba5b1e41309bbed8740ed704c0feb58b (diff)
parentef73160599ef836f47801fe550168ecdaa3e20d6 (diff)
downloaddjango-rest-framework-438c2cac1bcd5ac24ea83bc75deb12b8584b906a.tar.bz2
Merge branch 'patch'
Diffstat (limited to 'rest_framework/tests/utils.py')
-rw-r--r--rest_framework/tests/utils.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/rest_framework/tests/utils.py b/rest_framework/tests/utils.py
new file mode 100644
index 00000000..3906adb9
--- /dev/null
+++ b/rest_framework/tests/utils.py
@@ -0,0 +1,27 @@
+from django.test.client import RequestFactory, FakePayload
+from django.test.client import MULTIPART_CONTENT
+from urlparse import urlparse
+
+
+class RequestFactory(RequestFactory):
+
+ def __init__(self, **defaults):
+ super(RequestFactory, self).__init__(**defaults)
+
+ def patch(self, path, data={}, content_type=MULTIPART_CONTENT,
+ **extra):
+ "Construct a PATCH request."
+
+ patch_data = self._encode_data(data, content_type)
+
+ parsed = urlparse(path)
+ r = {
+ 'CONTENT_LENGTH': len(patch_data),
+ 'CONTENT_TYPE': content_type,
+ 'PATH_INFO': self._get_path(parsed),
+ 'QUERY_STRING': parsed[4],
+ 'REQUEST_METHOD': 'PATCH',
+ 'wsgi.input': FakePayload(patch_data),
+ }
+ r.update(extra)
+ return self.request(**r)