diff options
| author | Tom Christie | 2012-04-11 17:38:47 +0100 |
|---|---|---|
| committer | Tom Christie | 2012-04-11 17:38:47 +0100 |
| commit | 4739e1c012526c3ed9835d908d6d7eff5e3c48f6 (patch) | |
| tree | 800f2133bf50449e2698f562d5d1d2dd199168e3 /djangorestframework/tests | |
| parent | 44df8345f3ffcba141ded3a1bd993971d7199164 (diff) | |
| parent | 1ff741d1ccc38f099a7159bdef787e5c04dc4f79 (diff) | |
| download | django-rest-framework-4739e1c012526c3ed9835d908d6d7eff5e3c48f6.tar.bz2 | |
Merge work from sebpiq
Diffstat (limited to 'djangorestframework/tests')
| -rw-r--r-- | djangorestframework/tests/authentication.py | 2 | ||||
| -rw-r--r-- | djangorestframework/tests/mixins.py | 2 | ||||
| -rw-r--r-- | djangorestframework/tests/response.py | 42 | ||||
| -rw-r--r-- | djangorestframework/tests/throttling.py | 8 |
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): """ |
