diff options
| author | José Padilla | 2014-12-13 20:54:35 -0400 |
|---|---|---|
| committer | José Padilla | 2014-12-13 20:54:35 -0400 |
| commit | e8c0766568cb20a5357c5e6823283f0c187b35b8 (patch) | |
| tree | 6392f3a4840c5da0a270972b3721409ff89f6db7 /tests | |
| parent | 0d109c90a74bc575efa6d497a6501aef2b837983 (diff) | |
| download | django-rest-framework-e8c0766568cb20a5357c5e6823283f0c187b35b8.tar.bz2 | |
Support handlers with and without context
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/test_views.py | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/tests/test_views.py b/tests/test_views.py index e9b75f06..9952248f 100644 --- a/tests/test_views.py +++ b/tests/test_views.py @@ -6,6 +6,7 @@ from django.test import TestCase from rest_framework import status from rest_framework.decorators import api_view from rest_framework.response import Response +from rest_framework.request import Request from rest_framework.settings import api_settings from rest_framework.test import APIRequestFactory from rest_framework.views import APIView @@ -121,12 +122,7 @@ class TestCustomExceptionHandler(TestCase): def setUp(self): self.DEFAULT_HANDLER = api_settings.EXCEPTION_HANDLER - def exception_handler(exc, context=None): - self.assertTrue('args' in context) - self.assertTrue('kwargs' in context) - self.assertTrue('request' in context) - self.assertTrue('view' in context) - + def exception_handler(exc): return Response('Error!', status=status.HTTP_400_BAD_REQUEST) api_settings.EXCEPTION_HANDLER = exception_handler @@ -151,3 +147,22 @@ class TestCustomExceptionHandler(TestCase): expected = 'Error!' self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) self.assertEqual(response.data, expected) + + def test_context_exception_handler(self): + def exception_handler(exc, context=None): + self.assertEqual(context['args'], ()) + self.assertEqual(context['kwargs'], {}) + self.assertTrue(isinstance(context['request'], Request)) + self.assertTrue(isinstance(context['view'], ErrorView)) + + return Response('Error!', status=status.HTTP_400_BAD_REQUEST) + + api_settings.EXCEPTION_HANDLER = exception_handler + + view = ErrorView.as_view() + + request = factory.get('/', content_type='application/json') + response = view(request) + expected = 'Error!' + self.assertEqual(response.status_code, status.HTTP_400_BAD_REQUEST) + self.assertEqual(response.data, expected) |
