1
0
mirror of https://github.com/django/django.git synced 2025-04-25 09:44:36 +00:00

Removed Django 1.7 MIDDLEWARE_CLASSES upgrade check.

This commit is contained in:
Tim Graham 2015-02-09 19:16:07 -05:00
parent 5b75b01939
commit c970018f41
6 changed files with 1 additions and 77 deletions

View File

@ -7,7 +7,6 @@ from .messages import (CheckMessage,
from .registry import register, run_checks, tag_exists, Tags from .registry import register, run_checks, tag_exists, Tags
# Import these to force registration of checks # Import these to force registration of checks
import django.core.checks.compatibility.django_1_7_0 # NOQA
import django.core.checks.model_checks # NOQA import django.core.checks.model_checks # NOQA
import django.core.checks.security.base # NOQA import django.core.checks.security.base # NOQA
import django.core.checks.security.csrf # NOQA import django.core.checks.security.csrf # NOQA

View File

@ -1,36 +0,0 @@
from __future__ import unicode_literals
from .. import Tags, Warning, register
@register(Tags.compatibility)
def check_1_7_compatibility(**kwargs):
errors = []
errors.extend(_check_middleware_classes(**kwargs))
return errors
def _check_middleware_classes(app_configs=None, **kwargs):
"""
Checks if the user has *not* overridden the ``MIDDLEWARE_CLASSES`` setting &
warns them about the global default changes.
"""
from django.conf import settings
# MIDDLEWARE_CLASSES is overridden by default by startproject. If users
# have removed this override then we'll warn them about the default changes.
if not settings.is_overridden('MIDDLEWARE_CLASSES'):
return [
Warning(
"MIDDLEWARE_CLASSES is not set.",
hint=("Django 1.7 changed the global defaults for the MIDDLEWARE_CLASSES. "
"django.contrib.sessions.middleware.SessionMiddleware, "
"django.contrib.auth.middleware.AuthenticationMiddleware, and "
"django.contrib.messages.middleware.MessageMiddleware were removed from the defaults. "
"If your project needs these middleware then you should configure this setting."),
obj=None,
id='1_7.W001',
)
]
else:
return []

View File

@ -182,7 +182,7 @@ that might occur as a result of a version upgrade.
``django.contrib.auth.middleware.AuthenticationMiddleware``, and ``django.contrib.auth.middleware.AuthenticationMiddleware``, and
``django.contrib.messages.middleware.MessageMiddleware`` were removed from ``django.contrib.messages.middleware.MessageMiddleware`` were removed from
the defaults. If your project needs these middleware then you should the defaults. If your project needs these middleware then you should
configure this setting. configure this setting. *This check was removed in Django 1.9*.
Admin Admin
----- -----

View File

@ -4,11 +4,8 @@ from __future__ import unicode_literals
import sys import sys
from django.apps import apps from django.apps import apps
from django.conf import settings
from django.core import checks from django.core import checks
from django.core.checks import Error, Warning from django.core.checks import Error, Warning
from django.core.checks.compatibility.django_1_7_0 import \
check_1_7_compatibility
from django.core.checks.registry import CheckRegistry from django.core.checks.registry import CheckRegistry
from django.core.management import call_command from django.core.management import call_command
from django.core.management.base import CommandError from django.core.management.base import CommandError
@ -112,40 +109,6 @@ class MessageTests(TestCase):
self.assertEqual(force_text(e), expected) self.assertEqual(force_text(e), expected)
class Django_1_7_0_CompatibilityChecks(TestCase):
@override_settings(MIDDLEWARE_CLASSES=['django.contrib.sessions.middleware.SessionMiddleware'])
def test_middleware_classes_overridden(self):
errors = check_1_7_compatibility()
self.assertEqual(errors, [])
def test_middleware_classes_not_set_explicitly(self):
# If MIDDLEWARE_CLASSES was set explicitly, temporarily pretend it wasn't
middleware_classes_overridden = False
if 'MIDDLEWARE_CLASSES' in settings._wrapped._explicit_settings:
middleware_classes_overridden = True
settings._wrapped._explicit_settings.remove('MIDDLEWARE_CLASSES')
try:
errors = check_1_7_compatibility()
expected = [
checks.Warning(
"MIDDLEWARE_CLASSES is not set.",
hint=("Django 1.7 changed the global defaults for the MIDDLEWARE_CLASSES. "
"django.contrib.sessions.middleware.SessionMiddleware, "
"django.contrib.auth.middleware.AuthenticationMiddleware, and "
"django.contrib.messages.middleware.MessageMiddleware were removed from the defaults. "
"If your project needs these middleware then you should configure this setting."),
obj=None,
id='1_7.W001',
)
]
self.assertEqual(errors, expected)
finally:
# Restore settings value
if middleware_classes_overridden:
settings._wrapped._explicit_settings.add('MIDDLEWARE_CLASSES')
def simple_system_check(**kwargs): def simple_system_check(**kwargs):
simple_system_check.kwargs = kwargs simple_system_check.kwargs = kwargs
return [] return []

View File

@ -135,8 +135,6 @@ def setup(verbosity, test_labels):
settings.LANGUAGE_CODE = 'en' settings.LANGUAGE_CODE = 'en'
settings.SITE_ID = 1 settings.SITE_ID = 1
settings.MIDDLEWARE_CLASSES = ALWAYS_MIDDLEWARE_CLASSES settings.MIDDLEWARE_CLASSES = ALWAYS_MIDDLEWARE_CLASSES
# Ensure the middleware classes are seen as overridden otherwise we get a compatibility warning.
settings._explicit_settings.add('MIDDLEWARE_CLASSES')
settings.MIGRATION_MODULES = { settings.MIGRATION_MODULES = {
# these 'tests.migrations' modules don't actually exist, but this lets # these 'tests.migrations' modules don't actually exist, but this lets
# us skip creating migrations for the test models. # us skip creating migrations for the test models.