django-rest-framework/rest_framework/tests/utils.py

28 lines
875 B
Python
Raw Normal View History

from django.test.client import RequestFactory, FakePayload
from django.test.client import MULTIPART_CONTENT
2013-02-01 18:03:28 +04:00
from rest_framework.compat 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)
2013-02-01 18:03:28 +04:00
parsed = urlparse.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)