diff options
| author | Tom Christie | 2013-06-26 15:37:42 -0700 | 
|---|---|---|
| committer | Tom Christie | 2013-06-26 15:37:42 -0700 | 
| commit | 7e67ad666bf67a60fc4ca67ff2b58bf3fddd42c7 (patch) | |
| tree | e5a40c157c1d4a31ddaaef93ad77d2c528f8b697 /rest_framework/tests | |
| parent | af2fdc03a6f4cafe6e2f19b2adcf59c8918088f2 (diff) | |
| parent | c127e63c32b2fb93d1a9422943005c1f6cc5328b (diff) | |
| download | django-rest-framework-7e67ad666bf67a60fc4ca67ff2b58bf3fddd42c7.tar.bz2 | |
Merge pull request #953 from j4mie/prevent-duplicate-routing
Prevent dynamically routing to a method that is already routed to.
Diffstat (limited to 'rest_framework/tests')
| -rw-r--r-- | rest_framework/tests/test_routers.py | 22 | 
1 files changed, 22 insertions, 0 deletions
diff --git a/rest_framework/tests/test_routers.py b/rest_framework/tests/test_routers.py index fe0711fa..d375f4a8 100644 --- a/rest_framework/tests/test_routers.py +++ b/rest_framework/tests/test_routers.py @@ -2,6 +2,7 @@ from __future__ import unicode_literals  from django.db import models  from django.test import TestCase  from django.test.client import RequestFactory +from django.core.exceptions import ImproperlyConfigured  from rest_framework import serializers, viewsets, permissions  from rest_framework.compat import include, patterns, url  from rest_framework.decorators import link, action @@ -191,3 +192,24 @@ class TestActionKeywordArgs(TestCase):              response.data,              {'permission_classes': [permissions.AllowAny]}          ) + +class TestActionAppliedToExistingRoute(TestCase): +    """ +    Ensure `@action` decorator raises an except when applied +    to an existing route +    """ + +    def test_exception_raised_when_action_applied_to_existing_route(self): +        class TestViewSet(viewsets.ModelViewSet): + +            @action() +            def retrieve(self, request, *args, **kwargs): +                return Response({ +                    'hello': 'world' +                }) + +        self.router = SimpleRouter() +        self.router.register(r'test', TestViewSet, base_name='test') + +        with self.assertRaises(ImproperlyConfigured): +            self.router.urls  | 
