diff --git a/conftest.py b/conftest.py index e908933093..1d877eb077 100644 --- a/conftest.py +++ b/conftest.py @@ -38,6 +38,11 @@ def pytest_configure(config): os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'wagtail.tests.settings') django.setup() + # Activate a language: This affects HTTP header HTTP_ACCEPT_LANGUAGE sent by + # the Django test client. + from django.utils import translation + translation.activate("en") + from wagtail.tests.settings import MEDIA_ROOT, STATIC_ROOT shutil.rmtree(STATIC_ROOT, ignore_errors=True) shutil.rmtree(MEDIA_ROOT, ignore_errors=True) diff --git a/wagtail/admin/tests/test_account_management.py b/wagtail/admin/tests/test_account_management.py index a9f3c58631..d629bb6daa 100644 --- a/wagtail/admin/tests/test_account_management.py +++ b/wagtail/admin/tests/test_account_management.py @@ -397,6 +397,9 @@ class TestAccountSection(TestCase, WagtailTestUtils): # Check that the language preferences are stored self.assertEqual(profile.preferred_language, '') + # Check that the current language is assumed as English + self.assertEqual(profile.get_preferred_language(), "en") + @override_settings(WAGTAILADMIN_PERMITTED_LANGUAGES=[('en', 'English'), ('es', 'Spanish')]) def test_available_admin_languages_with_permitted_languages(self): self.assertListEqual(get_available_admin_languages(), [('en', 'English'), ('es', 'Spanish')]) diff --git a/wagtail/tests/settings.py b/wagtail/tests/settings.py index 70a0c6a345..31b99b7282 100644 --- a/wagtail/tests/settings.py +++ b/wagtail/tests/settings.py @@ -49,6 +49,8 @@ STATICFILES_FINDERS = ( USE_TZ = True +LANGUAGE_CODE = "en" + TEMPLATES = [ { 'BACKEND': 'django.template.backends.django.DjangoTemplates', @@ -88,6 +90,7 @@ MIDDLEWARE = ( 'django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', + 'django.middleware.locale.LocaleMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware', diff --git a/wagtail/users/models.py b/wagtail/users/models.py index 313da56284..b46817d7a7 100644 --- a/wagtail/users/models.py +++ b/wagtail/users/models.py @@ -4,6 +4,7 @@ import uuid from django.conf import settings from django.db import models from django.utils.translation import ugettext_lazy as _ +from django.utils.translation import get_language def upload_avatar_to(instance, filename): @@ -63,7 +64,7 @@ class UserProfile(models.Model): return cls.objects.get_or_create(user=user)[0] def get_preferred_language(self): - return self.preferred_language or settings.LANGUAGE_CODE + return self.preferred_language or get_language() def get_current_time_zone(self): return self.current_time_zone or settings.TIME_ZONE