Skip to content

Commit c99476b

Browse files
author
Martin J. Laubach
committed
Adapt tests, session no longer store language it seems?
1 parent 982248d commit c99476b

2 files changed

Lines changed: 21 additions & 2 deletions

File tree

feincms/extensions/translations.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,10 @@
3535
logger = logging.getLogger(__name__)
3636

3737
LANGUAGE_COOKIE_NAME: str = django_settings.LANGUAGE_COOKIE_NAME
38-
LANGUAGE_SESSION_KEY = translation.LANGUAGE_SESSION_KEY
38+
try:
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'
3942
PRIMARY_LANGUAGE: str = django_settings.LANGUAGES[0][0]
4043

4144
# ------------------------------------------------------------------------

tests/testapp/tests/test_extensions.py

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
2+
from unittest import skipIf
3+
4+
from django import VERSION
15
from django.conf import settings as django_settings
26
from django.contrib.sites.models import Site
37
from django.template.defaultfilters import slugify
@@ -70,6 +74,7 @@ def testPage(self):
7074
# TODO: add request tests
7175
# with translation.override('de'):
7276

77+
@skipIf(VERSION >= (4, 0), "Language no longer saved to session in django 4+")
7378
def test_user_has_language_set_with_session(self):
7479
factory = RequestFactory()
7580
request = factory.get(self.page_en.get_navigation_url())
@@ -84,14 +89,25 @@ def test_user_has_language_set_with_cookie(self):
8489

8590
self.assertEqual(user_has_language_set(request), True)
8691

92+
@skipIf(VERSION >= (4, 0), "Language no longer saved to session in django 4+")
8793
def test_translation_set_language_to_session(self):
94+
factory = RequestFactory()
95+
request = factory.get(self.page_de.get_navigation_url())
96+
setattr(request, "session", dict())
97+
translation_set_language(request, "de")
98+
99+
self.assertEqual(request.LANGUAGE_CODE, "de")
100+
self.assertEqual(request.session[self.language_session_key], "de")
101+
102+
@skipIf(VERSION >= (4, 0), "Language no longer saved to session in django 4+")
103+
def test_translation_set_language_to_session_primary(self):
88104
factory = RequestFactory()
89105
request = factory.get(self.page_en.get_navigation_url())
90106
setattr(request, "session", dict())
91107
translation_set_language(request, "en")
92108

93109
self.assertEqual(request.LANGUAGE_CODE, "en")
94-
self.assertEqual(request.session[self.language_session_key], "en")
110+
self.assertEqual(request.session.get(self.language_session_key, 'unset'), "unset")
95111

96112
def test_translation_set_language_to_cookie(self):
97113
factory = RequestFactory()

0 commit comments

Comments
 (0)