aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/tests
diff options
context:
space:
mode:
authorAndrew Hankinson2012-12-16 14:49:18 -0500
committerAndrew Hankinson2012-12-16 14:49:18 -0500
commit18338a37d356faebb0f59bd57b2ba876d66e6b73 (patch)
treeedb7894e715723c1b29ba8042be0c3d6a687b312 /rest_framework/tests
parent4f96951be9800cfc1fc67795a26d11ac66abc60d (diff)
downloaddjango-rest-framework-18338a37d356faebb0f59bd57b2ba876d66e6b73.tar.bz2
Adding PATCH support to Django REST Framework
Diffstat (limited to 'rest_framework/tests')
-rw-r--r--rest_framework/tests/decorators.py14
-rw-r--r--rest_framework/tests/generics.py13
-rw-r--r--rest_framework/tests/views.py4
3 files changed, 30 insertions, 1 deletions
diff --git a/rest_framework/tests/decorators.py b/rest_framework/tests/decorators.py
index 41864d71..a36444cc 100644
--- a/rest_framework/tests/decorators.py
+++ b/rest_framework/tests/decorators.py
@@ -63,6 +63,20 @@ class DecoratorTestCase(TestCase):
response = view(request)
self.assertEqual(response.status_code, 405)
+ # def test_calling_patch_method(self):
+
+ # @api_view(['GET', 'PATCH'])
+ # def view(request):
+ # return Response({})
+
+ # request = self.factory.patch('/')
+ # response = view(request)
+ # self.assertEqual(response.status_code, 200)
+
+ # request = self.factory.post('/')
+ # response = view(request)
+ # self.assertEqual(response.status_code, 405)
+
def test_renderer_classes(self):
@api_view(['GET'])
diff --git a/rest_framework/tests/generics.py b/rest_framework/tests/generics.py
index a8279ef2..1b55a3a5 100644
--- a/rest_framework/tests/generics.py
+++ b/rest_framework/tests/generics.py
@@ -180,6 +180,19 @@ class TestInstanceView(TestCase):
updated = self.objects.get(id=1)
self.assertEquals(updated.text, 'foobar')
+ # def test_patch_instance_view(self):
+ # """
+ # PATCH requests to RetrieveUpdateDestroyAPIView should update an object.
+ # """
+ # content = {'text': 'foobar'}
+ # request = factory.patch('/1', json.dumps(content),
+ # content_type='application/json')
+ # response = self.view(request, pk=1).render()
+ # self.assertEquals(response.status_code, status.HTTP_200_OK)
+ # self.assertEquals(response.data, {'id': 1, 'text': 'foobar'})
+ # updated = self.objects.get(id=1)
+ # self.assertEquals(updated.text, 'foobar')
+
def test_delete_instance_view(self):
"""
DELETE requests to RetrieveUpdateDestroyAPIView should delete an object.
diff --git a/rest_framework/tests/views.py b/rest_framework/tests/views.py
index 43365e07..7cd82656 100644
--- a/rest_framework/tests/views.py
+++ b/rest_framework/tests/views.py
@@ -18,7 +18,7 @@ class BasicView(APIView):
return Response({'method': 'POST', 'data': request.DATA})
-@api_view(['GET', 'POST', 'PUT'])
+@api_view(['GET', 'POST', 'PUT', 'PATCH'])
def basic_view(request):
if request.method == 'GET':
return {'method': 'GET'}
@@ -26,6 +26,8 @@ def basic_view(request):
return {'method': 'POST', 'data': request.DATA}
elif request.method == 'PUT':
return {'method': 'PUT', 'data': request.DATA}
+ elif request.method == 'PATCH':
+ return {'method': 'PATCH', 'data': request.DATA}
def sanitise_json_error(error_dict):