diff options
| author | Jones Chi | 2014-10-03 14:42:49 +0800 | 
|---|---|---|
| committer | ys.chi | 2014-10-06 15:10:35 +0800 | 
| commit | 2dfe75c23a041493bc83514d8e9e9268b79072d9 (patch) | |
| tree | ea0e0597b725af0da19a44dfe512e1b17523f32a /rest_framework/test.py | |
| parent | ad1497898b30c299e4e6fe0fbe3872b6e1ed27b8 (diff) | |
| download | django-rest-framework-2dfe75c23a041493bc83514d8e9e9268b79072d9.tar.bz2 | |
Fix follow does not work on APIClient
Handle follow just like Django's Client.
Diffstat (limited to 'rest_framework/test.py')
| -rw-r--r-- | rest_framework/test.py | 46 | 
1 files changed, 46 insertions, 0 deletions
| diff --git a/rest_framework/test.py b/rest_framework/test.py index 9b40353a..74d2c868 100644 --- a/rest_framework/test.py +++ b/rest_framework/test.py @@ -156,6 +156,52 @@ class APIClient(APIRequestFactory, DjangoClient):          kwargs.update(self._credentials)          return super(APIClient, self).request(**kwargs) +    def get(self, path, data=None, follow=False, **extra): +        response = super(APIClient, self).get(path, data=data, **extra) +        if follow: +            response = self._handle_redirects(response, **extra) +        return response + +    def post(self, path, data=None, format=None, content_type=None, +             follow=False, **extra): +        response = super(APIClient, self).post( +            path, data=data, format=format, content_type=content_type, **extra) +        if follow: +            response = self._handle_redirects(response, **extra) +        return response + +    def put(self, path, data=None, format=None, content_type=None, +            follow=False, **extra): +        response = super(APIClient, self).put( +            path, data=data, format=format, content_type=content_type, **extra) +        if follow: +            response = self._handle_redirects(response, **extra) +        return response + +    def patch(self, path, data=None, format=None, content_type=None, +              follow=False, **extra): +        response = super(APIClient, self).patch( +            path, data=data, format=format, content_type=content_type, **extra) +        if follow: +            response = self._handle_redirects(response, **extra) +        return response + +    def delete(self, path, data=None, format=None, content_type=None, +               follow=False, **extra): +        response = super(APIClient, self).delete( +            path, data=data, format=format, content_type=content_type, **extra) +        if follow: +            response = self._handle_redirects(response, **extra) +        return response + +    def options(self, path, data=None, format=None, content_type=None, +                follow=False, **extra): +        response = super(APIClient, self).options( +            path, data=data, format=format, content_type=content_type, **extra) +        if follow: +            response = self._handle_redirects(response, **extra) +        return response +      def logout(self):          self._credentials = {}          return super(APIClient, self).logout() | 
