Commit ece4d24f authored by Tim Graham's avatar Tim Graham
Browse files

Refs #26601 -- Deprecated old-style middleware.

parent 9baf692a
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -43,6 +43,11 @@ class BaseHandler(object):
        self._exception_middleware = []

        if settings.MIDDLEWARE is None:
            warnings.warn(
                "Old-style middleware using settings.MIDDLEWARE_CLASSES is "
                "deprecated. Update your middleware and use settings.MIDDLEWARE "
                "instead.", RemovedInDjango20Warning
            )
            handler = self._legacy_get_response
            for middleware_path in settings.MIDDLEWARE_CLASSES:
                mw_class = import_string(middleware_path)
+3 −0
Original line number Diff line number Diff line
@@ -181,6 +181,9 @@ details on these changes.
  ``Meta.manager_inheritance_from_future`` to opt-in to this behavior will be
  removed.

* Support for old-style middleware using ``settings.MIDDLEWARE_CLASSES`` will
  be removed.

.. _deprecation-removed-in-1.10:

1.10
+6 −0
Original line number Diff line number Diff line
@@ -1860,6 +1860,12 @@ A list of middleware to use. See :doc:`/topics/http/middleware`.
``MIDDLEWARE_CLASSES``
----------------------

.. deprecated:: 1.10

    Old-style middleware that uses  ``settings.MIDDLEWARE_CLASSES`` are
    deprecated. :ref:`Adapt old, custom middleware <upgrading-middleware>` and
    use the :setting:`MIDDLEWARE` setting.

Default::

    [
+4 −0
Original line number Diff line number Diff line
@@ -1142,6 +1142,10 @@ Miscellaneous
  :meth:`Storage.generate_filename()
  <django.core.files.storage.Storage.generate_filename>`).

* Old-style middleware that uses  ``settings.MIDDLEWARE_CLASSES`` are
  deprecated. :ref:`Adapt old, custom middleware <upgrading-middleware>` and
  use the new :setting:`MIDDLEWARE` setting.

.. _removed-features-1.10:

Features removed in 1.10
+4 −0
Original line number Diff line number Diff line
@@ -4,6 +4,8 @@ from django.contrib.auth.models import Permission, User
from django.contrib.contenttypes.models import ContentType
from django.db.models import Q
from django.test import SimpleTestCase, TestCase, override_settings
from django.test.utils import ignore_warnings
from django.utils.deprecation import RemovedInDjango20Warning

from .settings import AUTH_MIDDLEWARE, AUTH_TEMPLATES

@@ -76,6 +78,7 @@ class AuthContextProcessorTests(TestCase):
        response = self.client.get('/auth_processor_no_attr_access/')
        self.assertContains(response, "Session not accessed")

    @ignore_warnings(category=RemovedInDjango20Warning)
    @override_settings(MIDDLEWARE_CLASSES=AUTH_MIDDLEWARE, MIDDLEWARE=None)
    def test_session_not_accessed_middleware_classes(self):
        response = self.client.get('/auth_processor_no_attr_access/')
@@ -90,6 +93,7 @@ class AuthContextProcessorTests(TestCase):
        response = self.client.get('/auth_processor_attr_access/')
        self.assertContains(response, "Session accessed")

    @ignore_warnings(category=RemovedInDjango20Warning)
    @override_settings(MIDDLEWARE_CLASSES=AUTH_MIDDLEWARE, MIDDLEWARE=None)
    def test_session_is_accessed_middleware_classes(self):
        response = self.client.get('/auth_processor_attr_access/')
Loading