From e3b3005b8b98dbb689546495c71999a929aed016 Mon Sep 17 00:00:00 2001 From: Anike Arni Date: Fri, 17 Mar 2017 14:48:40 -0300 Subject: [#1012] Refactors getting soledad service in BaseResource with @tayanefernandes --- service/pixelated/resources/__init__.py | 3 +++ .../pixelated/resources/backup_account_resource.py | 2 +- .../unit/resources/test_backup_account_resource.py | 7 +++--- service/test/unit/resources/test_base_resource.py | 27 ++++++++++++++++++++++ 4 files changed, 34 insertions(+), 5 deletions(-) create mode 100644 service/test/unit/resources/test_base_resource.py diff --git a/service/pixelated/resources/__init__.py b/service/pixelated/resources/__init__.py index f5512644..a36d476a 100644 --- a/service/pixelated/resources/__init__.py +++ b/service/pixelated/resources/__init__.py @@ -119,6 +119,9 @@ class BaseResource(Resource): def feedback_service(self, request): return self._service(request, 'feedback_service') + def soledad(self, request): + return self._services(request)._leap_session.soledad + class UnAuthorizedResource(Resource): diff --git a/service/pixelated/resources/backup_account_resource.py b/service/pixelated/resources/backup_account_resource.py index ca32e973..b752b4c7 100644 --- a/service/pixelated/resources/backup_account_resource.py +++ b/service/pixelated/resources/backup_account_resource.py @@ -51,7 +51,7 @@ class BackupAccountResource(BaseResource): def render_POST(self, request): account_recovery = AccountRecovery( self._authenticator.bonafide_session, - self._services(request)._leap_session.soledad) + self.soledad(request)) def update_response(response): request.setResponseCode(NO_CONTENT) diff --git a/service/test/unit/resources/test_backup_account_resource.py b/service/test/unit/resources/test_backup_account_resource.py index 09520969..3d23256e 100644 --- a/service/test/unit/resources/test_backup_account_resource.py +++ b/service/test/unit/resources/test_backup_account_resource.py @@ -16,8 +16,7 @@ import os -from mock import MagicMock, patch, ANY - +from mock import MagicMock, patch from twisted.trial import unittest from twisted.web.test.requesthelper import DummyRequest from twisted.internet import defer @@ -49,14 +48,14 @@ class TestBackupAccountResource(unittest.TestCase): mock_account_recovery = MagicMock() mock_account_recovery_init.return_value = mock_account_recovery mock_account_recovery.update_recovery_code.return_value = defer.succeed("Success") - request = DummyRequest(['/backup-account']) request.method = 'POST' d = self.web.get(request) def assert_update_recovery_code_called(_): mock_account_recovery_init.assert_called_with( - self.resource._authenticator.bonafide_session, ANY) + self.resource._authenticator.bonafide_session, + self.services_factory.services()._leap_session.soledad) mock_account_recovery.update_recovery_code.assert_called() d.addCallback(assert_update_recovery_code_called) diff --git a/service/test/unit/resources/test_base_resource.py b/service/test/unit/resources/test_base_resource.py new file mode 100644 index 00000000..35ae67c7 --- /dev/null +++ b/service/test/unit/resources/test_base_resource.py @@ -0,0 +1,27 @@ +# +# Copyright (c) 2017 ThoughtWorks, Inc. +# +# Pixelated is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# Pixelated is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with Pixelated. If not, see . + +from mock import MagicMock +from twisted.trial import unittest +from pixelated.resources import BaseResource + + +class TestBaseResource(unittest.TestCase): + def test_get_soledad_service(self): + mock_services_factory = MagicMock() + base_resource = BaseResource(mock_services_factory) + + self.assertEqual(base_resource.soledad('request'), mock_services_factory.services()._leap_session.soledad) -- cgit v1.2.3