diff options
| author | BrickXu | 2014-12-02 12:55:34 +0800 | 
|---|---|---|
| committer | xulei | 2014-12-02 17:07:55 +0800 | 
| commit | 53f52765fc90472a05cbeb34760b45f735a7332c (patch) | |
| tree | fa23ccefecb526c71e99d404ca3906be6e5ca04b /tests/test_viewsets.py | |
| parent | 81870b6e1a7b0c3c149d4bfba0e20924ebf1b187 (diff) | |
| download | django-rest-framework-53f52765fc90472a05cbeb34760b45f735a7332c.tar.bz2 | |
Not allow to pass an empty actions to viewset.as_view(). Refs issue #2171
Diffstat (limited to 'tests/test_viewsets.py')
| -rw-r--r-- | tests/test_viewsets.py | 35 | 
1 files changed, 35 insertions, 0 deletions
| diff --git a/tests/test_viewsets.py b/tests/test_viewsets.py new file mode 100644 index 00000000..4d18a955 --- /dev/null +++ b/tests/test_viewsets.py @@ -0,0 +1,35 @@ +from django.test import TestCase +from rest_framework import status +from rest_framework.response import Response +from rest_framework.test import APIRequestFactory +from rest_framework.viewsets import GenericViewSet + + +factory = APIRequestFactory() + + +class BasicViewSet(GenericViewSet): +    def list(self, request, *args, **kwargs): +        return Response({'ACTION': 'LIST'}) + + +class InitializeViewSetsTestCase(TestCase): +    def test_initialize_view_set_with_actions(self): +        request = factory.get('/', '', content_type='application/json') +        my_view = BasicViewSet.as_view(actions={ +            'get': 'list', +        }) + +        response = my_view(request) +        self.assertEqual(response.status_code, status.HTTP_200_OK) +        self.assertEqual(response.data, {'ACTION': 'LIST'}) + +    def test_initialize_view_set_with_empty_actions(self): +        try: +            BasicViewSet.as_view() +        except TypeError as e: +            self.assertEqual(str(e), "The `actions` argument must be provided " +                                     "when calling `.as_view()` on a ViewSet. " +                                     "For example `.as_view({'get': 'list'})`") +        else: +            self.fail("actions must not be empty.") | 
