diff --git a/tests/browsable_api/test_browsable_api.py b/tests/browsable_api/test_browsable_api.py index 153b4c189..09b29ae1b 100644 --- a/tests/browsable_api/test_browsable_api.py +++ b/tests/browsable_api/test_browsable_api.py @@ -1,16 +1,14 @@ from __future__ import unicode_literals from django.contrib.auth.models import User -from django.test import TestCase +from django.test import override_settings, TestCase from rest_framework.test import APIClient +@override_settings(ROOT_URLCONF='tests.browsable_api.auth_urls') class DropdownWithAuthTests(TestCase): """Tests correct dropdown behaviour with Auth views enabled.""" - - urls = 'tests.browsable_api.auth_urls' - def setUp(self): self.client = APIClient(enforce_csrf_checks=True) self.username = 'john' @@ -40,11 +38,9 @@ class DropdownWithAuthTests(TestCase): self.assertContains(response, '>Log in<') +@override_settings(ROOT_URLCONF='tests.browsable_api.no_auth_urls') class NoDropdownWithoutAuthTests(TestCase): """Tests correct dropdown behaviour with Auth views NOT enabled.""" - - urls = 'tests.browsable_api.no_auth_urls' - def setUp(self): self.client = APIClient(enforce_csrf_checks=True) self.username = 'john' diff --git a/tests/test_authentication.py b/tests/test_authentication.py index 6c411936d..db137b8ad 100644 --- a/tests/test_authentication.py +++ b/tests/test_authentication.py @@ -8,7 +8,7 @@ from django.conf.urls import include, url from django.contrib.auth.models import User from django.db import models from django.http import HttpResponse -from django.test import TestCase +from django.test import override_settings, TestCase from django.utils import six from rest_framework import ( @@ -81,10 +81,9 @@ urlpatterns = [ ] +@override_settings(ROOT_URLCONF='tests.test_authentication') class BasicAuthTests(TestCase): """Basic authentication""" - urls = 'tests.test_authentication' - def setUp(self): self.csrf_client = APIClient(enforce_csrf_checks=True) self.username = 'john' @@ -152,10 +151,9 @@ class BasicAuthTests(TestCase): self.assertEqual(response['WWW-Authenticate'], 'Basic realm="api"') +@override_settings(ROOT_URLCONF='tests.test_authentication') class SessionAuthTests(TestCase): """User session authentication""" - urls = 'tests.test_authentication' - def setUp(self): self.csrf_client = APIClient(enforce_csrf_checks=True) self.non_csrf_client = APIClient(enforce_csrf_checks=False) @@ -222,9 +220,9 @@ class SessionAuthTests(TestCase): self.assertEqual(response.status_code, status.HTTP_403_FORBIDDEN) +@override_settings(ROOT_URLCONF='tests.test_authentication') class BaseTokenAuthTests(object): """Token authentication""" - urls = 'tests.test_authentication' model = None path = None header_prefix = 'Token ' diff --git a/tests/test_filters.py b/tests/test_filters.py index 8493c96af..fd71764f7 100644 --- a/tests/test_filters.py +++ b/tests/test_filters.py @@ -274,12 +274,11 @@ class IntegrationTestFiltering(CommonFilteringTestCase): self.assertEqual(response.status_code, status.HTTP_200_OK) +@override_settings(ROOT_URLCONF='tests.test_filters') class IntegrationTestDetailFiltering(CommonFilteringTestCase): """ Integration tests for filtered detail views. """ - urls = 'tests.test_filters' - def _get_url(self, item): return reverse('detail-view', kwargs=dict(pk=item.pk)) diff --git a/tests/test_htmlrenderer.py b/tests/test_htmlrenderer.py index 01ef46d35..649a7c919 100644 --- a/tests/test_htmlrenderer.py +++ b/tests/test_htmlrenderer.py @@ -5,7 +5,7 @@ from django.conf.urls import url from django.core.exceptions import PermissionDenied from django.http import Http404 from django.template import Template, TemplateDoesNotExist -from django.test import TestCase +from django.test import override_settings, TestCase from django.utils import six from rest_framework import status @@ -43,9 +43,8 @@ urlpatterns = [ ] +@override_settings(ROOT_URLCONF='tests.test_htmlrenderer') class TemplateHTMLRendererTests(TestCase): - urls = 'tests.test_htmlrenderer' - def setUp(self): """ Monkeypatch get_template @@ -89,9 +88,8 @@ class TemplateHTMLRendererTests(TestCase): self.assertEqual(response['Content-Type'], 'text/html; charset=utf-8') +@override_settings(ROOT_URLCONF='tests.test_htmlrenderer') class TemplateHTMLRendererExceptionTests(TestCase): - urls = 'tests.test_htmlrenderer' - def setUp(self): """ Monkeypatch get_template diff --git a/tests/test_middleware.py b/tests/test_middleware.py index 49124da61..a9f620c0e 100644 --- a/tests/test_middleware.py +++ b/tests/test_middleware.py @@ -1,6 +1,6 @@ - from django.conf.urls import url from django.contrib.auth.models import User +from django.test import override_settings from rest_framework.authentication import TokenAuthentication from rest_framework.authtoken.models import Token @@ -20,10 +20,8 @@ class MyMiddleware(object): return response +@override_settings(ROOT_URLCONF='tests.test_middleware') class TestMiddleware(APITestCase): - - urls = 'tests.test_middleware' - def test_middleware_can_access_user_when_processing_response(self): user = User.objects.create_user('john', 'john@example.com', 'password') key = 'abcd1234' diff --git a/tests/test_relations_hyperlink.py b/tests/test_relations_hyperlink.py index c0642eda2..0eb22b2aa 100644 --- a/tests/test_relations_hyperlink.py +++ b/tests/test_relations_hyperlink.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals from django.conf.urls import url -from django.test import TestCase +from django.test import override_settings, TestCase from rest_framework import serializers from rest_framework.test import APIRequestFactory @@ -71,10 +71,8 @@ class NullableOneToOneTargetSerializer(serializers.HyperlinkedModelSerializer): # TODO: Add test that .data cannot be accessed prior to .is_valid - +@override_settings(ROOT_URLCONF='tests.test_relations_hyperlink') class HyperlinkedManyToManyTests(TestCase): - urls = 'tests.test_relations_hyperlink' - def setUp(self): for idx in range(1, 4): target = ManyToManyTarget(name='target-%d' % idx) @@ -188,9 +186,8 @@ class HyperlinkedManyToManyTests(TestCase): self.assertEqual(serializer.data, expected) +@override_settings(ROOT_URLCONF='tests.test_relations_hyperlink') class HyperlinkedForeignKeyTests(TestCase): - urls = 'tests.test_relations_hyperlink' - def setUp(self): target = ForeignKeyTarget(name='target-1') target.save() @@ -318,9 +315,8 @@ class HyperlinkedForeignKeyTests(TestCase): self.assertEqual(serializer.errors, {'target': ['This field may not be null.']}) +@override_settings(ROOT_URLCONF='tests.test_relations_hyperlink') class HyperlinkedNullableForeignKeyTests(TestCase): - urls = 'tests.test_relations_hyperlink' - def setUp(self): target = ForeignKeyTarget(name='target-1') target.save() @@ -425,9 +421,8 @@ class HyperlinkedNullableForeignKeyTests(TestCase): self.assertEqual(serializer.data, expected) +@override_settings(ROOT_URLCONF='tests.test_relations_hyperlink') class HyperlinkedNullableOneToOneTests(TestCase): - urls = 'tests.test_relations_hyperlink' - def setUp(self): target = OneToOneTarget(name='target-1') target.save() diff --git a/tests/test_renderers.py b/tests/test_renderers.py index de89e50aa..ca8eb0cff 100644 --- a/tests/test_renderers.py +++ b/tests/test_renderers.py @@ -8,7 +8,7 @@ from collections import MutableMapping, OrderedDict from django.conf.urls import include, url from django.core.cache import cache from django.db import models -from django.test import TestCase +from django.test import override_settings, TestCase from django.utils import six from django.utils.safestring import SafeText from django.utils.translation import ugettext_lazy as _ @@ -148,13 +148,11 @@ class DocumentingRendererTests(TestCase): self.assertContains(response, '>PATCH<') +@override_settings(ROOT_URLCONF='tests.test_renderers') class RendererEndToEndTests(TestCase): """ End-to-end testing of renderers using an RendererMixin on a generic view. """ - - urls = 'tests.test_renderers' - def test_default_renderer_serializes_content(self): """If the Accept header is not set the default renderer should serialize the response.""" resp = self.client.get('/') @@ -397,13 +395,11 @@ class AsciiJSONRendererTests(TestCase): # Tests for caching issue, #346 +@override_settings(ROOT_URLCONF='tests.test_renderers') class CacheRenderTest(TestCase): """ Tests specific to caching responses """ - - urls = 'tests.test_renderers' - def test_head_caching(self): """ Test caching of HEAD requests diff --git a/tests/test_request.py b/tests/test_request.py index 7a0575789..8219bd4ec 100644 --- a/tests/test_request.py +++ b/tests/test_request.py @@ -7,7 +7,7 @@ from django.conf.urls import url from django.contrib.auth import authenticate, login, logout from django.contrib.auth.models import User from django.contrib.sessions.middleware import SessionMiddleware -from django.test import TestCase +from django.test import override_settings, TestCase from django.utils import six from rest_framework import status @@ -113,9 +113,8 @@ urlpatterns = [ ] +@override_settings(ROOT_URLCONF='tests.test_request') class TestContentParsingWithAuthentication(TestCase): - urls = 'tests.test_request' - def setUp(self): self.csrf_client = APIClient(enforce_csrf_checks=True) self.username = 'john' diff --git a/tests/test_response.py b/tests/test_response.py index df2d7b4ec..f01b05774 100644 --- a/tests/test_response.py +++ b/tests/test_response.py @@ -1,7 +1,7 @@ from __future__ import unicode_literals from django.conf.urls import include, url -from django.test import TestCase +from django.test import override_settings, TestCase from django.utils import six from rest_framework import generics, routers, serializers, status, viewsets @@ -131,13 +131,11 @@ urlpatterns = [ # TODO: Clean tests bellow - remove duplicates with above, better unit testing, ... +@override_settings(ROOT_URLCONF='tests.test_response') class RendererIntegrationTests(TestCase): """ End-to-end testing of renderers using an ResponseMixin on a generic view. """ - - urls = 'tests.test_response' - def test_default_renderer_serializes_content(self): """If the Accept header is not set the default renderer should serialize the response.""" resp = self.client.get('/') @@ -201,9 +199,8 @@ class RendererIntegrationTests(TestCase): self.assertEqual(resp.status_code, DUMMYSTATUS) +@override_settings(ROOT_URLCONF='tests.test_response') class UnsupportedMediaTypeTests(TestCase): - urls = 'tests.test_response' - def test_should_allow_posting_json(self): response = self.client.post('/json', data='{"test": 123}', content_type='application/json') @@ -220,12 +217,11 @@ class UnsupportedMediaTypeTests(TestCase): self.assertEqual(response.status_code, 415) +@override_settings(ROOT_URLCONF='tests.test_response') class Issue122Tests(TestCase): """ Tests that covers #122. """ - urls = 'tests.test_response' - def test_only_html_renderer(self): """ Test if no infinite recursion occurs. @@ -239,13 +235,11 @@ class Issue122Tests(TestCase): self.client.get('/html1') +@override_settings(ROOT_URLCONF='tests.test_response') class Issue467Tests(TestCase): """ Tests for #467 """ - - urls = 'tests.test_response' - def test_form_has_label_and_help_text(self): resp = self.client.get('/html_new_model') self.assertEqual(resp['Content-Type'], 'text/html; charset=utf-8') @@ -253,13 +247,11 @@ class Issue467Tests(TestCase): # self.assertContains(resp, 'Text description.') +@override_settings(ROOT_URLCONF='tests.test_response') class Issue807Tests(TestCase): """ Covers #807 """ - - urls = 'tests.test_response' - def test_does_not_append_charset_by_default(self): """ Renderers don't include a charset unless set explicitly. diff --git a/tests/test_reverse.py b/tests/test_reverse.py index c5486e5db..0962efaf3 100644 --- a/tests/test_reverse.py +++ b/tests/test_reverse.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.conf.urls import url from django.core.urlresolvers import NoReverseMatch -from django.test import TestCase +from django.test import override_settings, TestCase from rest_framework.reverse import reverse from rest_framework.test import APIRequestFactory @@ -30,12 +30,11 @@ class MockVersioningScheme(object): return 'http://scheme-reversed/view' +@override_settings(ROOT_URLCONF='tests.test_reverse') class ReverseTests(TestCase): """ Tests for fully qualified URLs when using `reverse`. """ - urls = 'tests.test_reverse' - def test_reversed_urls_are_fully_qualified(self): request = factory.get('/view') url = reverse('view', request=request) diff --git a/tests/test_routers.py b/tests/test_routers.py index ae2639bf2..ae4670802 100644 --- a/tests/test_routers.py +++ b/tests/test_routers.py @@ -5,7 +5,7 @@ from collections import namedtuple from django.conf.urls import include, url from django.core.exceptions import ImproperlyConfigured from django.db import models -from django.test import TestCase +from django.test import override_settings, TestCase from rest_framework import permissions, serializers, viewsets from rest_framework.decorators import detail_route, list_route @@ -113,9 +113,8 @@ class TestSimpleRouter(TestCase): self.assertEqual(route.mapping[method], endpoint) +@override_settings(ROOT_URLCONF='tests.test_routers') class TestRootView(TestCase): - urls = 'tests.test_routers' - def test_retrieve_namespaced_root(self): response = self.client.get('/namespaced/') self.assertEqual( @@ -135,12 +134,11 @@ class TestRootView(TestCase): ) +@override_settings(ROOT_URLCONF='tests.test_routers') class TestCustomLookupFields(TestCase): """ Ensure that custom lookup fields are correctly routed. """ - urls = 'tests.test_routers' - def setUp(self): RouterTestModel.objects.create(uuid='123', text='foo bar') @@ -191,14 +189,13 @@ class TestLookupValueRegex(TestCase): self.assertEqual(expected[idx], self.urls[idx].regex.pattern) +@override_settings(ROOT_URLCONF='tests.test_routers') class TestLookupUrlKwargs(TestCase): """ Ensure the router honors lookup_url_kwarg. Setup a deep lookup_field, but map it to a simple URL kwarg. """ - urls = 'tests.test_routers' - def setUp(self): RouterTestModel.objects.create(uuid='123', text='foo bar') diff --git a/tests/test_testing.py b/tests/test_testing.py index e0bf759a4..4fd20c33b 100644 --- a/tests/test_testing.py +++ b/tests/test_testing.py @@ -6,7 +6,7 @@ from io import BytesIO from django.conf.urls import url from django.contrib.auth.models import User from django.shortcuts import redirect -from django.test import TestCase +from django.test import override_settings, TestCase from rest_framework.decorators import api_view from rest_framework.response import Response @@ -44,9 +44,8 @@ urlpatterns = [ ] +@override_settings(ROOT_URLCONF='tests.test_testing') class TestAPITestClient(TestCase): - urls = 'tests.test_testing' - def setUp(self): self.client = APIClient() diff --git a/tests/test_utils.py b/tests/test_utils.py index ca3d43061..adb735511 100644 --- a/tests/test_utils.py +++ b/tests/test_utils.py @@ -2,7 +2,7 @@ from __future__ import unicode_literals from django.conf.urls import url from django.core.exceptions import ImproperlyConfigured -from django.test import TestCase +from django.test import override_settings, TestCase from django.utils import six import rest_framework.utils.model_meta @@ -47,12 +47,11 @@ urlpatterns = [ ] +@override_settings(ROOT_URLCONF='tests.test_utils') class BreadcrumbTests(TestCase): """ Tests the breadcrumb functionality used by the HTML renderer. """ - urls = 'tests.test_utils' - def test_root_breadcrumbs(self): url = '/' self.assertEqual(