1
0
mirror of https://github.com/django/django.git synced 2025-10-31 09:41:08 +00:00

Fixed #5789 -- Changed LocaleMiddleware session variable to '_language'.

The old 'django_language' variable will still be read from in order
to migrate users. The backwards-compatability shim will be removed in
Django 1.8.

Thanks to jdunck for the report and stugots for the initial patch.
This commit is contained in:
Bouke Haarsma
2013-10-18 13:56:32 +02:00
committed by Tim Graham
parent 8e2029f8dd
commit 0d0f4f020a
8 changed files with 58 additions and 14 deletions

View File

@@ -1190,17 +1190,39 @@ class LocaleMiddlewareTests(TransRealMixin, TestCase):
# Clear the session data before request
session.save()
self.client.get('/en/simple/')
self.assertEqual(self.client.session['django_language'], 'en')
response = self.client.get('/en/simple/')
self.assertEqual(self.client.session['_language'], 'en')
# Clear the session data before request
session.save()
self.client.get('/fr/simple/')
self.assertEqual(self.client.session['django_language'], 'fr')
response = self.client.get('/fr/simple/')
self.assertEqual(self.client.session['_language'], 'fr')
# Check that language is not changed in session
self.client.get('/en/simple/')
self.assertEqual(self.client.session['django_language'], 'fr')
response = self.client.get('/en/simple/')
self.assertEqual(self.client.session['_language'], 'fr')
@override_settings(
MIDDLEWARE_CLASSES=(
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.locale.LocaleMiddleware',
'django.middleware.common.CommonMiddleware',
),
)
def test_backwards_session_language(self):
"""
Check that language is stored in session if missing.
"""
# Create session with old language key name
engine = import_module(settings.SESSION_ENGINE)
session = engine.SessionStore()
session['django_language'] = 'en'
session.save()
self.client.cookies[settings.SESSION_COOKIE_NAME] = session.session_key
# request other language; should default to old language key value
response = self.client.get('/fr/simple/')
self.assertEqual(self.client.session['_language'], 'en')
@override_settings(