diff options
Diffstat (limited to 'rest_framework/test.py')
| -rw-r--r-- | rest_framework/test.py | 12 | 
1 files changed, 12 insertions, 0 deletions
| diff --git a/rest_framework/test.py b/rest_framework/test.py index 234d10a4..df5a5b3b 100644 --- a/rest_framework/test.py +++ b/rest_framework/test.py @@ -8,6 +8,7 @@ from django.conf import settings  from django.test.client import Client as DjangoClient  from django.test.client import ClientHandler  from django.test import testcases +from django.utils.http import urlencode  from rest_framework.settings import api_settings  from rest_framework.compat import RequestFactory as DjangoRequestFactory  from rest_framework.compat import force_bytes_or_smart_bytes, six @@ -71,6 +72,17 @@ class APIRequestFactory(DjangoRequestFactory):          return ret, content_type +    def get(self, path, data=None, **extra): +        r = { +            'QUERY_STRING': urlencode(data or {}, doseq=True), +        } +        # Fix to support old behavior where you have the arguments in the url +        # See #1461 +        if not data and '?' in path: +            r['QUERY_STRING'] = path.split('?')[1] +        r.update(extra) +        return self.generic('GET', path, **r) +      def post(self, path, data=None, format=None, content_type=None, **extra):          data, content_type = self._encode_data(data, format, content_type)          return self.generic('POST', path, data, content_type, **extra) | 
