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 | |
| 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')
| -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() |
