From f4e8c8446ccb8071ee9c42b7cd08d513a1330584 Mon Sep 17 00:00:00 2001 From: Brook Elgie Date: Wed, 25 May 2016 14:52:20 +0100 Subject: [PATCH] [#3053] Remove old locale session code. Locale is no longer persisted by a value in the session (instead using urls). This simply removes some old unused references to i18n info in the session, and some commented out tests. --- ckan/lib/base.py | 14 +++++------ ckan/tests/legacy/lib/test_i18n.py | 40 ++++++------------------------ 2 files changed, 13 insertions(+), 41 deletions(-) diff --git a/ckan/lib/base.py b/ckan/lib/base.py index 727d7815023..a958d230956 100644 --- a/ckan/lib/base.py +++ b/ckan/lib/base.py @@ -267,15 +267,13 @@ def _identify_user_default(self): c.user = c.user.decode('utf8') c.userobj = model.User.by_name(c.user) if c.userobj is None or not c.userobj.is_active(): + # This occurs when a user that was still logged in is deleted, - # or when you are logged in, clean db - # and then restart (or when you change your username) - # There is no user object, so even though repoze thinks you - # are logged in and your cookie has ckan_display_name, we - # need to force user to logout and login again to get the - # User object. - session['lang'] = request.environ.get('CKAN_LANG') - session.save() + # or when you are logged in, clean db and then restart (or + # when you change your username) There is no user object, so + # even though repoze thinks you are logged in and your cookie + # has ckan_display_name, we need to force user to logout and + # login again to get the User object. ev = request.environ if 'repoze.who.plugins' in ev: diff --git a/ckan/tests/legacy/lib/test_i18n.py b/ckan/tests/legacy/lib/test_i18n.py index b93e69bc758..48f17d3c052 100644 --- a/ckan/tests/legacy/lib/test_i18n.py +++ b/ckan/tests/legacy/lib/test_i18n.py @@ -1,4 +1,4 @@ -from nose.tools import assert_equal, assert_raises +from nose.tools import assert_equal from pylons import config, session import pylons @@ -11,8 +11,10 @@ class TestI18n(PylonsTestCase): def handle_request(self, session_language=None, languages_header=[]): session['locale'] = session_language + class FakePylons: translator = None + class FakeRequest: # Populated from the HTTP_ACCEPT_LANGUAGE header normally languages = languages_header @@ -21,44 +23,16 @@ class FakeRequest: request = FakeRequest() real_pylons_request = pylons.request try: - pylons.request = request # for set_lang to work + pylons.request = request # for set_lang to work + class FakeTmplContext: - language = None # gets filled in by handle_request + language = None # gets filled in by handle_request tmpl_context = FakeTmplContext() ckan.lib.i18n.handle_request(request, tmpl_context) - return tmpl_context.language # the language that got set + return tmpl_context.language # the language that got set finally: pylons.request = real_pylons_request def test_handle_request__default(self): assert_equal(self.handle_request(), config['ckan.locale_default']) - -## Session no longer used to set languages so test no longer relevant -## see #1653 - -## def test_handle_request__session(self): -## assert_equal(self.handle_request(session_language='fr'), -## 'fr') - -## Browser lang detection disabled - see #1452 - -## def test_handle_request__header(self): -## assert_equal(self.handle_request(languages_header=['de']), -## 'de') - -## def test_handle_request__header_negotiate(self): -## # Language so is not an option, so reverts to next one -## assert_equal(self.handle_request(languages_header=['so_KE', 'de']), -## 'de') - -## def test_handle_request__header_but_defaults(self): -## # Language so is not an option, so reverts to default -## assert_equal(self.handle_request(languages_header=['so_KE']), -## 'en') - -## def test_handle_request__header_territory(self): -## # Request for specific version of German ends up simply as de. -## assert_equal(self.handle_request(languages_header=['fr_CA', 'en']), -## 'fr') -