2 files changed
@@ -35,10 +35,12 @@ | |||
| 35 | 35 | logger = logging.getLogger(__name__) | |
| 36 | 36 | ||
| 37 | 37 | LANGUAGE_COOKIE_NAME: str = django_settings.LANGUAGE_COOKIE_NAME | |
| 38 | - try: | ||
| 38 | + if hasattr(translation, "LANGUAGE_SESSION_KEY"): | ||
| 39 | 39 | LANGUAGE_SESSION_KEY = translation.LANGUAGE_SESSION_KEY | |
| 40 | - except AttributeError: # stopgap measure for django >= 4, need to revisit this later | ||
| 41 | - LANGUAGE_SESSION_KEY = '_language' | ||
| 40 | + else: | ||
| 41 | + # stopgap measure for django >= 4, need to revisit this later | ||
| 42 | + LANGUAGE_SESSION_KEY = LANGUAGE_COOKIE_NAME | ||
| 43 | + | ||
| 42 | 44 | PRIMARY_LANGUAGE: str = django_settings.LANGUAGES[0][0] | |
| 43 | 45 | ||
| 44 | 46 | # ------------------------------------------------------------------------ | |
@@ -74,7 +74,6 @@ def testPage(self): | |||
| 74 | 74 | # TODO: add request tests | |
| 75 | 75 | # with translation.override('de'): | |
| 76 | 76 | ||
| 77 | - @skipIf(VERSION >= (4, 0), "Language no longer saved to session in django 4+") | ||
| 78 | 77 | def test_user_has_language_set_with_session(self): | |
| 79 | 78 | factory = RequestFactory() | |
| 80 | 79 | request = factory.get(self.page_en.get_navigation_url()) | |
@@ -89,7 +88,6 @@ def test_user_has_language_set_with_cookie(self): | |||
| 89 | 88 | ||
| 90 | 89 | self.assertEqual(user_has_language_set(request), True) | |
| 91 | 90 | ||
| 92 | - @skipIf(VERSION >= (4, 0), "Language no longer saved to session in django 4+") | ||
| 93 | 91 | def test_translation_set_language_to_session(self): | |
| 94 | 92 | factory = RequestFactory() | |
| 95 | 93 | request = factory.get(self.page_de.get_navigation_url()) | |
@@ -99,14 +97,14 @@ def test_translation_set_language_to_session(self): | |||
| 99 | 97 | self.assertEqual(request.LANGUAGE_CODE, "de") | |
| 100 | 98 | self.assertEqual(request.session[self.language_session_key], "de") | |
| 101 | 99 | ||
| 102 | - @skipIf(VERSION >= (4, 0), "Language no longer saved to session in django 4+") | ||
| 103 | 100 | def test_translation_set_language_to_session_primary(self): | |
| 104 | 101 | factory = RequestFactory() | |
| 105 | 102 | request = factory.get(self.page_en.get_navigation_url()) | |
| 106 | 103 | setattr(request, "session", dict()) | |
| 107 | 104 | translation_set_language(request, "en") | |
| 108 | 105 | ||
| 109 | 106 | self.assertEqual(request.LANGUAGE_CODE, "en") | |
| 107 | + # We avoid setting the translation language to the primary language, so should not be set | ||
| 110 | 108 | self.assertEqual(request.session.get(self.language_session_key, 'unset'), "unset") | |
| 111 | 109 | ||
| 112 | 110 | def test_translation_set_language_to_cookie(self): | |
0 commit comments