From fe38be96c1769ee83c65246704d2ae435c8d4150 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Thu, 14 Aug 2014 09:32:50 -0400 Subject: Fixed #21579 -- Made LocaleMiddleware respect script prefix. Thanks buettgenbach at datacollect.com for the report and patch. --- tests/i18n/patterns/tests.py | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/i18n/patterns/tests.py b/tests/i18n/patterns/tests.py index 93284578b0..a4049fca13 100644 --- a/tests/i18n/patterns/tests.py +++ b/tests/i18n/patterns/tests.py @@ -3,7 +3,7 @@ from __future__ import unicode_literals import os from django.core.exceptions import ImproperlyConfigured -from django.core.urlresolvers import reverse, clear_url_caches +from django.core.urlresolvers import reverse, clear_url_caches, set_script_prefix from django.http import HttpResponsePermanentRedirect from django.middleware.locale import LocaleMiddleware from django.test import TestCase, override_settings @@ -290,6 +290,25 @@ class URLResponseTests(URLTestCaseBase): self.assertEqual(response.context['LANGUAGE_CODE'], 'pt-br') +class URLRedirectWithScriptAliasTests(URLTestCaseBase): + """ + #21579 - LocaleMiddleware should respect the script prefix. + """ + def setUp(self): + super(URLRedirectWithScriptAliasTests, self).setUp() + self.script_prefix = '/script_prefix' + set_script_prefix(self.script_prefix) + + def tearDown(self): + super(URLRedirectWithScriptAliasTests, self).tearDown() + # reset script prefix + set_script_prefix('') + + def test_language_prefix_with_script_prefix(self): + response = self.client.get('/prefixed/', HTTP_ACCEPT_LANGUAGE='en', SCRIPT_NAME=self.script_prefix) + self.assertRedirects(response, '%s/en/prefixed/' % self.script_prefix, target_status_code=404) + + class URLTagTests(URLTestCaseBase): """ Test if the language tag works. -- cgit v1.3