Update versioning tests w/ new URLPatternsTestCase

This commit is contained in:
Ryan P Kilby 2017-12-21 23:04:18 -05:00
parent c490e5ac9c
commit 44c2a5ce39

View File

@ -7,33 +7,12 @@ from rest_framework.decorators import APIView
from rest_framework.relations import PKOnlyObject from rest_framework.relations import PKOnlyObject
from rest_framework.response import Response from rest_framework.response import Response
from rest_framework.reverse import reverse from rest_framework.reverse import reverse
from rest_framework.test import APIRequestFactory, APITestCase from rest_framework.test import (
APIRequestFactory, APITestCase, URLPatternsTestCase
)
from rest_framework.versioning import NamespaceVersioning from rest_framework.versioning import NamespaceVersioning
@override_settings(ROOT_URLCONF='tests.test_versioning')
class URLPatternsTestCase(APITestCase):
"""
Isolates URL patterns used during testing on the test class itself.
For example:
class MyTestCase(URLPatternsTestCase):
urlpatterns = [
...
]
def test_something(self):
...
"""
def setUp(self):
global urlpatterns
urlpatterns = self.urlpatterns
def tearDown(self):
global urlpatterns
urlpatterns = []
class RequestVersionView(APIView): class RequestVersionView(APIView):
def get(self, request, *args, **kwargs): def get(self, request, *args, **kwargs):
return Response({'version': request.version}) return Response({'version': request.version})
@ -163,7 +142,7 @@ class TestRequestVersion:
assert response.data == {'version': None} assert response.data == {'version': None}
class TestURLReversing(URLPatternsTestCase): class TestURLReversing(URLPatternsTestCase, APITestCase):
included = [ included = [
url(r'^namespaced/$', dummy_view, name='another'), url(r'^namespaced/$', dummy_view, name='another'),
url(r'^example/(?P<pk>\d+)/$', dummy_pk_view, name='example-detail') url(r'^example/(?P<pk>\d+)/$', dummy_pk_view, name='example-detail')
@ -329,7 +308,7 @@ class TestAllowedAndDefaultVersion:
assert response.data == {'version': 'v2'} assert response.data == {'version': 'v2'}
class TestHyperlinkedRelatedField(URLPatternsTestCase): class TestHyperlinkedRelatedField(URLPatternsTestCase, APITestCase):
included = [ included = [
url(r'^namespaced/(?P<pk>\d+)/$', dummy_pk_view, name='namespaced'), url(r'^namespaced/(?P<pk>\d+)/$', dummy_pk_view, name='namespaced'),
] ]
@ -361,7 +340,7 @@ class TestHyperlinkedRelatedField(URLPatternsTestCase):
self.field.to_internal_value('/v2/namespaced/3/') self.field.to_internal_value('/v2/namespaced/3/')
class TestNamespaceVersioningHyperlinkedRelatedFieldScheme(URLPatternsTestCase): class TestNamespaceVersioningHyperlinkedRelatedFieldScheme(URLPatternsTestCase, APITestCase):
nested = [ nested = [
url(r'^namespaced/(?P<pk>\d+)/$', dummy_pk_view, name='nested'), url(r'^namespaced/(?P<pk>\d+)/$', dummy_pk_view, name='nested'),
] ]