diff --git a/rest_framework/compat.py b/rest_framework/compat.py index ce821402e..456c8b20d 100644 --- a/rest_framework/compat.py +++ b/rest_framework/compat.py @@ -11,7 +11,6 @@ import inspect import django from django.apps import apps from django.conf import settings -from django.contrib.auth import views from django.core.exceptions import ImproperlyConfigured, ValidationError from django.core.validators import \ MaxLengthValidator as DjangoMaxLengthValidator @@ -334,11 +333,3 @@ def authenticate(request=None, **credentials): else: return authenticate(request=request, **credentials) -if django.VERSION < (1, 11): - login = views.login - login_kwargs = {'template_name': 'rest_framework/login.html'} - logout = views.logout -else: - login = views.LoginView.as_view(template_name='rest_framework/login.html') - login_kwargs = {} - logout = views.LogoutView.as_view() diff --git a/rest_framework/urls.py b/rest_framework/urls.py index 60107d4d2..10cc5def0 100644 --- a/rest_framework/urls.py +++ b/rest_framework/urls.py @@ -14,9 +14,19 @@ and you should make sure your authentication settings include `SessionAuthentica """ from __future__ import unicode_literals +import django from django.conf.urls import url +from django.contrib.auth import views + +if django.VERSION < (1, 11): + login = views.login + login_kwargs = {'template_name': 'rest_framework/login.html'} + logout = views.logout +else: + login = views.LoginView.as_view(template_name='rest_framework/login.html') + login_kwargs = {} + logout = views.LogoutView.as_view() -from rest_framework.compat import login, login_kwargs, logout app_name = 'rest_framework' urlpatterns = [ diff --git a/tests/conftest.py b/tests/conftest.py index 0e5c55ffe..9906935d7 100644 --- a/tests/conftest.py +++ b/tests/conftest.py @@ -41,6 +41,7 @@ def pytest_configure(): 'django.contrib.staticfiles', 'rest_framework', 'rest_framework.authtoken', + 'tests.importable', 'tests', ), PASSWORD_HASHERS=( diff --git a/tests/importable/__init__.py b/tests/importable/__init__.py new file mode 100644 index 000000000..19aaf6f90 --- /dev/null +++ b/tests/importable/__init__.py @@ -0,0 +1,2 @@ + +from rest_framework import compat # noqa diff --git a/tests/importable/test_installed.py b/tests/importable/test_installed.py new file mode 100644 index 000000000..5998c9cbc --- /dev/null +++ b/tests/importable/test_installed.py @@ -0,0 +1,13 @@ + +from django.conf import settings +from tests import importable + + +def test_installed(): + # ensure that apps can freely import rest_framework.compat + assert 'tests.importable' in settings.INSTALLED_APPS + + +def test_imported(): + # ensure that the __init__ hasn't been mucked with + assert hasattr(importable, 'compat')