aboutsummaryrefslogtreecommitdiffstats
path: root/djangorestframework/tests
diff options
context:
space:
mode:
authorTom Christie2012-04-11 17:38:47 +0100
committerTom Christie2012-04-11 17:38:47 +0100
commit4739e1c012526c3ed9835d908d6d7eff5e3c48f6 (patch)
tree800f2133bf50449e2698f562d5d1d2dd199168e3 /djangorestframework/tests
parent44df8345f3ffcba141ded3a1bd993971d7199164 (diff)
parent1ff741d1ccc38f099a7159bdef787e5c04dc4f79 (diff)
downloaddjango-rest-framework-4739e1c012526c3ed9835d908d6d7eff5e3c48f6.tar.bz2
Merge work from sebpiq
Diffstat (limited to 'djangorestframework/tests')
-rw-r--r--djangorestframework/tests/authentication.py2
-rw-r--r--djangorestframework/tests/mixins.py2
-rw-r--r--djangorestframework/tests/response.py42
-rw-r--r--djangorestframework/tests/throttling.py8
4 files changed, 43 insertions, 11 deletions
diff --git a/djangorestframework/tests/authentication.py b/djangorestframework/tests/authentication.py
index 25410b04..5debc79a 100644
--- a/djangorestframework/tests/authentication.py
+++ b/djangorestframework/tests/authentication.py
@@ -12,7 +12,7 @@ import base64
class MockView(View):
- permissions = (permissions.IsAuthenticated,)
+ permissions_classes = (permissions.IsAuthenticated,)
def post(self, request):
return HttpResponse({'a': 1, 'b': 2, 'c': 3})
diff --git a/djangorestframework/tests/mixins.py b/djangorestframework/tests/mixins.py
index bf0f29f7..25c57bd6 100644
--- a/djangorestframework/tests/mixins.py
+++ b/djangorestframework/tests/mixins.py
@@ -281,6 +281,6 @@ class TestPagination(TestCase):
paginated URLs. So page 1 should contain ?page=2, not ?page=1&page=2 """
request = self.req.get('/paginator/?page=1')
response = MockPaginatorView.as_view()(request)
- content = json.loads(response.rendered_content)
+ content = response.raw_content
self.assertTrue('page=2' in content['next'])
self.assertFalse('page=1' in content['next'])
diff --git a/djangorestframework/tests/response.py b/djangorestframework/tests/response.py
index fd83da29..07d0f4fb 100644
--- a/djangorestframework/tests/response.py
+++ b/djangorestframework/tests/response.py
@@ -4,7 +4,7 @@ import unittest
from django.conf.urls.defaults import patterns, url, include
from django.test import TestCase
-from djangorestframework.response import Response, NotAcceptable
+from djangorestframework.response import Response, NotAcceptable, ImmediateResponse
from djangorestframework.views import View
from djangorestframework.compat import RequestFactory
from djangorestframework import status
@@ -95,10 +95,9 @@ class TestResponseDetermineRenderer(TestCase):
class TestResponseRenderContent(TestCase):
-
- def get_response(self, url='', accept_list=[], content=None):
+ def get_response(self, url='', accept_list=[], content=None, renderers=None):
request = RequestFactory().get(url, HTTP_ACCEPT=','.join(accept_list))
- return Response(request=request, content=content, renderers=DEFAULT_RENDERERS)
+ return Response(request=request, content=content, renderers=renderers or DEFAULT_RENDERERS)
def test_render(self):
"""
@@ -107,10 +106,43 @@ class TestResponseRenderContent(TestCase):
content = {'a': 1, 'b': [1, 2, 3]}
content_type = 'application/json'
response = self.get_response(accept_list=[content_type], content=content)
- response.render()
+ response = response.render()
self.assertEqual(json.loads(response.content), content)
self.assertEqual(response['Content-Type'], content_type)
+ def test_render_no_renderer(self):
+ """
+ Test rendering response when no renderer can satisfy accept.
+ """
+ content = 'bla'
+ content_type = 'weirdcontenttype'
+ response = self.get_response(accept_list=[content_type], content=content)
+ response = response.render()
+ self.assertEqual(response.status_code, 406)
+ self.assertIsNotNone(response.content)
+
+ # def test_render_renderer_raises_ImmediateResponse(self):
+ # """
+ # Test rendering response when renderer raises ImmediateResponse
+ # """
+ # class PickyJSONRenderer(BaseRenderer):
+ # """
+ # A renderer that doesn't make much sense, just to try
+ # out raising an ImmediateResponse
+ # """
+ # media_type = 'application/json'
+
+ # def render(self, obj=None, media_type=None):
+ # raise ImmediateResponse({'error': '!!!'}, status=400)
+
+ # response = self.get_response(
+ # accept_list=['application/json'],
+ # renderers=[PickyJSONRenderer, JSONRenderer]
+ # )
+ # response = response.render()
+ # self.assertEqual(response.status_code, 400)
+ # self.assertEqual(response.content, json.dumps({'error': '!!!'}))
+
DUMMYSTATUS = status.HTTP_200_OK
DUMMYCONTENT = 'dummycontent'
diff --git a/djangorestframework/tests/throttling.py b/djangorestframework/tests/throttling.py
index 393c3ec8..73a4c02b 100644
--- a/djangorestframework/tests/throttling.py
+++ b/djangorestframework/tests/throttling.py
@@ -13,17 +13,17 @@ from djangorestframework.resources import FormResource
from djangorestframework.response import Response
class MockView(View):
- permissions = ( PerUserThrottling, )
+ permissions_classes = ( PerUserThrottling, )
throttle = '3/sec'
def get(self, request):
return Response('foo')
class MockView_PerViewThrottling(MockView):
- permissions = ( PerViewThrottling, )
+ permissions_classes = ( PerViewThrottling, )
class MockView_PerResourceThrottling(MockView):
- permissions = ( PerResourceThrottling, )
+ permissions_classes = ( PerResourceThrottling, )
resource = FormResource
class MockView_MinuteThrottling(MockView):
@@ -54,7 +54,7 @@ class ThrottlingTests(TestCase):
"""
Explicitly set the timer, overriding time.time()
"""
- view.permissions[0].timer = lambda self: value
+ view.permissions_classes[0].timer = lambda self: value
def test_request_throttling_expires(self):
"""