From f1e5f54048cfadec42990f3dfb212c7147bf5faa Mon Sep 17 00:00:00 2001 From: NavaL Date: Thu, 23 Jun 2016 12:13:20 +0200 Subject: refactoring: renaming services factory methods to relate them to user services sessions --- service/pixelated/application.py | 2 +- service/pixelated/config/services.py | 11 +++++++---- service/pixelated/resources/__init__.py | 2 +- service/pixelated/resources/auth.py | 2 +- service/pixelated/resources/login_resource.py | 2 +- service/pixelated/resources/logout_resource.py | 6 +++--- service/test/unit/resources/test_login_resource.py | 10 +++++----- service/test/unit/resources/test_logout_resources.py | 2 +- service/test/unit/test_application.py | 2 +- 9 files changed, 21 insertions(+), 18 deletions(-) (limited to 'service') diff --git a/service/pixelated/application.py b/service/pixelated/application.py index 7d8cd76c..65e974b6 100644 --- a/service/pixelated/application.py +++ b/service/pixelated/application.py @@ -113,7 +113,7 @@ def add_top_level_system_callbacks(deferred, services_factory): def _log_user_out(event, user_data): log.info('Invalid soledad token, logging out %s' % user_data) user_data = {'user_id': user_data['uuid']} if 'uuid' in user_data else {'user_id': user_data, 'using_email': True} - services_factory.log_out_user(**user_data) + services_factory.destroy_session(**user_data) def _log_user_out_on_token_expire(leap_session): register(events.SOLEDAD_INVALID_AUTH_TOKEN, _log_user_out) diff --git a/service/pixelated/config/services.py b/service/pixelated/config/services.py index cec4803e..b36eb0bb 100644 --- a/service/pixelated/config/services.py +++ b/service/pixelated/config/services.py @@ -90,17 +90,17 @@ class ServicesFactory(object): def map_email(self, username, user_id): self._map_email[username] = user_id - def is_logged_in(self, user_id): + def has_session(self, user_id): return user_id in self._services_by_user def services(self, user_id): return self._services_by_user[user_id] - def log_out_user(self, user_id, using_email=False): + def destroy_session(self, user_id, using_email=False): if using_email: user_id = self._map_email[user_id.split('@')[0]] - if self.is_logged_in(user_id): + if self.has_session(user_id): _services = self._services_by_user[user_id] _services.close() del self._services_by_user[user_id] @@ -126,5 +126,8 @@ class SingleUserServicesFactory(object): def services(self, user_id): return self._services - def log_out_user(self, user_id, using_email=False): + def has_session(self, user_id): + return True + + def destroy_session(self, user_id, using_email=False): reactor.stop() diff --git a/service/pixelated/resources/__init__.py b/service/pixelated/resources/__init__.py index 8fc8080a..0015db16 100644 --- a/service/pixelated/resources/__init__.py +++ b/service/pixelated/resources/__init__.py @@ -72,7 +72,7 @@ class BaseResource(Resource): def is_logged_in(self, request): session = self.get_session(request) - return session.is_logged_in() and self._services_factory.is_logged_in(session.user_uuid) + return session.is_logged_in() and self._services_factory.has_session(session.user_uuid) def get_session(self, request): return IPixelatedSession(request.getSession()) diff --git a/service/pixelated/resources/auth.py b/service/pixelated/resources/auth.py index a6ab5396..5aedad3a 100644 --- a/service/pixelated/resources/auth.py +++ b/service/pixelated/resources/auth.py @@ -82,7 +82,7 @@ class SessionChecker(object): def requestAvatarId(self, credentials): session = self.get_session(credentials.request) - if session.is_logged_in() and self._services_factory.is_logged_in(session.user_uuid): + if session.is_logged_in() and self._services_factory.has_session(session.user_uuid): return defer.succeed(session.user_uuid) return defer.succeed(ANONYMOUS) diff --git a/service/pixelated/resources/login_resource.py b/service/pixelated/resources/login_resource.py index eaa21bd9..ab91176a 100644 --- a/service/pixelated/resources/login_resource.py +++ b/service/pixelated/resources/login_resource.py @@ -159,7 +159,7 @@ class LoginResource(BaseResource): @defer.inlineCallbacks def _setup_user_services(self, leap_session, request): user_id = leap_session.user_auth.uuid - if not self._services_factory.is_logged_in(user_id): + if not self._services_factory.has_session(user_id): yield self._services_factory.create_services_from(leap_session) self._services_factory.map_email(self.creds.username, user_id) diff --git a/service/pixelated/resources/logout_resource.py b/service/pixelated/resources/logout_resource.py index 4c700afe..a4fe584f 100644 --- a/service/pixelated/resources/logout_resource.py +++ b/service/pixelated/resources/logout_resource.py @@ -28,9 +28,9 @@ class LogoutResource(BaseResource): @defer.inlineCallbacks def _execute_logout(self, request): - session = self.get_session(request) - yield self._services_factory.log_out_user(session.user_uuid) - session.expire() + http_session = self.get_session(request) + yield self._services_factory.destroy_session(http_session.user_uuid) + http_session.expire() def render_POST(self, request): def _redirect_to_login(_): diff --git a/service/test/unit/resources/test_login_resource.py b/service/test/unit/resources/test_login_resource.py index 09bc79bf..2fba72fd 100644 --- a/service/test/unit/resources/test_login_resource.py +++ b/service/test/unit/resources/test_login_resource.py @@ -37,7 +37,7 @@ class TestLoginResource(unittest.TestCase): def test_there_are_no_grand_children_resources_when_logged_in(self, mock_is_logged_in): request = DummyRequest(['/login/grand_children']) mock_is_logged_in.return_value = True - when(self.services_factory).is_logged_in(ANY()).thenReturn(True) + when(self.services_factory).has_session(ANY()).thenReturn(True) d = self.web.get(request) @@ -168,7 +168,7 @@ class TestLoginPOST(unittest.TestCase): self.user_auth = user_auth def mock_user_has_services_setup(self): - when(self.services_factory).is_logged_in('some_user_uuid').thenReturn(True) + when(self.services_factory).has_session('some_user_uuid').thenReturn(True) def test_login_responds_interstitial_and_add_corresponding_session_to_services_factory(self): irrelevant = None @@ -191,13 +191,13 @@ class TestLoginPOST(unittest.TestCase): def test_login_does_not_reload_services_if_already_loaded(self): irrelevant = None when(self.portal).login(ANY(), None, IResource).thenReturn((irrelevant, self.leap_session, irrelevant)) - when(self.services_factory).is_logged_in('some_user_uuid').thenReturn(True) + when(self.services_factory).has_session('some_user_uuid').thenReturn(True) d = self.web.get(self.request) def assert_login_setup_service_for_user(_): verify(self.portal).login(ANY(), None, IResource) - verify(self.services_factory).is_logged_in('some_user_uuid') + verify(self.services_factory).has_session('some_user_uuid') verifyNoMoreInteractions(self.services_factory) interstitial_js_in_template = '' self.assertIn(interstitial_js_in_template, self.request.written[0]) @@ -242,7 +242,7 @@ class TestLoginPOST(unittest.TestCase): @patch('pixelated.resources.session.PixelatedSession.is_logged_in') def test_should_not_process_login_if_already_logged_in(self, mock_logged_in, mock_redirect): mock_logged_in.return_value = True - when(self.services_factory).is_logged_in(ANY()).thenReturn(True) + when(self.services_factory).has_session(ANY()).thenReturn(True) mock_redirect.return_value = "mocked redirection" when(self.portal).login(ANY(), None, IResource).thenRaise(Exception()) d = self.web.get(self.request) diff --git a/service/test/unit/resources/test_logout_resources.py b/service/test/unit/resources/test_logout_resources.py index 49866057..845fcde9 100644 --- a/service/test/unit/resources/test_logout_resources.py +++ b/service/test/unit/resources/test_logout_resources.py @@ -32,7 +32,7 @@ class TestLogoutResource(unittest.TestCase): def expire_session_and_redirect(_): session = self.resource.get_session(request) - self.services_factory.log_out_user.assert_called_once_with(session.user_uuid) + self.services_factory.destroy_session.assert_called_once_with(session.user_uuid) session.expire.assert_called_once_with() mock_redirect.assert_called_once_with('/login', request) diff --git a/service/test/unit/test_application.py b/service/test/unit/test_application.py index 87cb6871..649fd62b 100644 --- a/service/test/unit/test_application.py +++ b/service/test/unit/test_application.py @@ -83,7 +83,7 @@ class ApplicationTest(unittest.TestCase): services_factory_mock = MagicMock() mock_service_log_user_out = MagicMock(return_value=None) - services_factory_mock.log_out_user = mock_service_log_user_out + services_factory_mock.destroy_session = mock_service_log_user_out leap_session = MagicMock() register_mock = events_mock.register -- cgit v1.2.3