Commit bd7de3cb authored by Brett Haydon's avatar Brett Haydon Committed by Tim Graham
Browse files

[1.10.x] Fixed #26716 -- Made CurrentSiteMiddleware compatible with new-style middleware.

Backport of 5e3f4c2e from master
parent 34f13e03
Loading
Loading
Loading
Loading
+3 −1
Original line number Diff line number Diff line
from django.utils.deprecation import MiddlewareMixin

from .shortcuts import get_current_site


class CurrentSiteMiddleware(object):
class CurrentSiteMiddleware(MiddlewareMixin):
    """
    Middleware that sets `site` attribute to request object.
    """
+8 −2
Original line number Diff line number Diff line
@@ -11,7 +11,7 @@ from django.contrib.sites.requests import RequestSite
from django.contrib.sites.shortcuts import get_current_site
from django.core.exceptions import ObjectDoesNotExist, ValidationError
from django.db.models.signals import post_migrate
from django.http import HttpRequest
from django.http import HttpRequest, HttpResponse
from django.test import TestCase, modify_settings, override_settings
from django.test.utils import captured_stdout

@@ -305,9 +305,15 @@ class CreateDefaultSiteTests(TestCase):

class MiddlewareTest(TestCase):

    def test_request(self):
    def test_old_style_request(self):
        """ Makes sure that the request has correct `site` attribute. """
        middleware = CurrentSiteMiddleware()
        request = HttpRequest()
        middleware.process_request(request)
        self.assertEqual(request.site.id, settings.SITE_ID)

    def test_request(self):
        def get_response(request):
            return HttpResponse(str(request.site.id))
        response = CurrentSiteMiddleware(get_response)(HttpRequest())
        self.assertContains(response, settings.SITE_ID)