diff options
| author | Brandon Cazander | 2015-01-24 11:00:36 -0800 | 
|---|---|---|
| committer | Brandon Cazander | 2015-01-24 11:00:36 -0800 | 
| commit | 6c083b12a1162bf8e0f51e6c52ff13a1bd621cf2 (patch) | |
| tree | 2c2d03bdc11f78c40c1a2b54aef32607af041965 /tests | |
| parent | ed04725822d5dc9a90c9c6e5c14d85083ae6ff28 (diff) | |
| download | django-rest-framework-6c083b12a1162bf8e0f51e6c52ff13a1bd621cf2.tar.bz2 | |
Streamline test for #2455
Diffstat (limited to 'tests')
| -rw-r--r-- | tests/browsable_api/auth_urls.py | 8 | ||||
| -rw-r--r-- | tests/browsable_api/models.py | 9 | ||||
| -rw-r--r-- | tests/browsable_api/serializers.py | 14 | ||||
| -rw-r--r-- | tests/browsable_api/test_browsable_api.py | 10 | ||||
| -rw-r--r-- | tests/browsable_api/views.py | 27 | ||||
| -rw-r--r-- | tests/test_metadata.py | 15 | 
6 files changed, 16 insertions, 67 deletions
| diff --git a/tests/browsable_api/auth_urls.py b/tests/browsable_api/auth_urls.py index 098a99ac..97bc1036 100644 --- a/tests/browsable_api/auth_urls.py +++ b/tests/browsable_api/auth_urls.py @@ -1,17 +1,11 @@  from __future__ import unicode_literals  from django.conf.urls import patterns, url, include -from rest_framework import routers -from .views import MockView, FooViewSet, BarViewSet +from .views import MockView -router = routers.SimpleRouter() -router.register(r'foo', FooViewSet) -router.register(r'bar', BarViewSet)  urlpatterns = patterns(      '',      (r'^$', MockView.as_view()), -    url(r'^', include(router.urls)), -    url(r'^bar/(?P<pk>\d+)/$', BarViewSet, name='bar-list'),      url(r'^auth/', include('rest_framework.urls', namespace='rest_framework')),  ) diff --git a/tests/browsable_api/models.py b/tests/browsable_api/models.py deleted file mode 100644 index 05c6c23b..00000000 --- a/tests/browsable_api/models.py +++ /dev/null @@ -1,9 +0,0 @@ -from django.db import models - - -class Foo(models.Model): -    name = models.CharField(max_length=30) - - -class Bar(models.Model): -    foo = models.ForeignKey("Foo", editable=False) diff --git a/tests/browsable_api/serializers.py b/tests/browsable_api/serializers.py deleted file mode 100644 index e8364540..00000000 --- a/tests/browsable_api/serializers.py +++ /dev/null @@ -1,14 +0,0 @@ -from .models import Foo, Bar -from rest_framework.serializers import HyperlinkedModelSerializer, HyperlinkedIdentityField - - -class FooSerializer(HyperlinkedModelSerializer): -    bar = HyperlinkedIdentityField(view_name='bar-list') - -    class Meta: -        model = Foo - - -class BarSerializer(HyperlinkedModelSerializer): -    class Meta: -        model = Bar diff --git a/tests/browsable_api/test_browsable_api.py b/tests/browsable_api/test_browsable_api.py index 31907f84..5f264783 100644 --- a/tests/browsable_api/test_browsable_api.py +++ b/tests/browsable_api/test_browsable_api.py @@ -3,7 +3,6 @@ from django.contrib.auth.models import User  from django.test import TestCase  from rest_framework.test import APIClient -from .models import Foo, Bar  class DropdownWithAuthTests(TestCase): @@ -17,8 +16,6 @@ class DropdownWithAuthTests(TestCase):          self.email = 'lennon@thebeatles.com'          self.password = 'password'          self.user = User.objects.create_user(self.username, self.email, self.password) -        foo = Foo.objects.create(name='Foo') -        Bar.objects.create(foo=foo)      def tearDown(self):          self.client.logout() @@ -28,13 +25,6 @@ class DropdownWithAuthTests(TestCase):          response = self.client.get('/')          self.assertContains(response, 'john') -    def test_bug_2455_clone_request(self): -        self.client.login(username=self.username, password=self.password) -        json_response = self.client.get('/foo/1/?format=json') -        self.assertEqual(json_response.status_code, 200) -        browsable_api_response = self.client.get('/foo/1/') -        self.assertEqual(browsable_api_response.status_code, 200) -      def test_logout_shown_when_logged_in(self):          self.client.login(username=self.username, password=self.password)          response = self.client.get('/') diff --git a/tests/browsable_api/views.py b/tests/browsable_api/views.py index f06f7c40..000f4e80 100644 --- a/tests/browsable_api/views.py +++ b/tests/browsable_api/views.py @@ -1,14 +1,9 @@  from __future__ import unicode_literals  from rest_framework.views import APIView -from rest_framework.viewsets import ModelViewSet  from rest_framework import authentication  from rest_framework import renderers  from rest_framework.response import Response -from rest_framework.renderers import BrowsableAPIRenderer, JSONRenderer -from rest_framework.versioning import NamespaceVersioning -from .models import Foo, Bar -from .serializers import FooSerializer, BarSerializer  class MockView(APIView): @@ -18,25 +13,3 @@ class MockView(APIView):      def get(self, request):          return Response({'a': 1, 'b': 2, 'c': 3}) - - -class SerializerClassMixin(object): -    def get_serializer_class(self): -        # Get base name of serializer -        self.request.version -        return self.serializer_class - - -class FooViewSet(SerializerClassMixin, ModelViewSet): -    versioning_class = NamespaceVersioning -    model = Foo -    queryset = Foo.objects.all() -    serializer_class = FooSerializer -    renderer_classes = (BrowsableAPIRenderer, JSONRenderer) - - -class BarViewSet(SerializerClassMixin, ModelViewSet): -    model = Bar -    queryset = Bar.objects.all() -    serializer_class = BarSerializer -    renderer_classes = (BrowsableAPIRenderer, ) diff --git a/tests/test_metadata.py b/tests/test_metadata.py index 972a896a..bdc84edf 100644 --- a/tests/test_metadata.py +++ b/tests/test_metadata.py @@ -1,6 +1,7 @@  from __future__ import unicode_literals  from rest_framework import exceptions, serializers, status, views  from rest_framework.request import Request +from rest_framework.renderers import BrowsableAPIRenderer  from rest_framework.test import APIRequestFactory  request = Request(APIRequestFactory().options('/')) @@ -168,3 +169,17 @@ class TestMetadata:          response = view(request=request)          assert response.status_code == status.HTTP_200_OK          assert list(response.data['actions'].keys()) == ['POST'] + +    def test_bug_2455_clone_request(self): +        class ExampleView(views.APIView): +            renderer_classes = (BrowsableAPIRenderer,) + +            def post(self, request): +                pass + +            def get_serializer(self): +                assert hasattr(self.request, 'version') +                return serializers.Serializer() + +        view = ExampleView.as_view() +        view(request=request) | 
