diff options
Diffstat (limited to 'service/test/unit/bitmask_libraries/test_session.py')
-rw-r--r-- | service/test/unit/bitmask_libraries/test_session.py | 172 |
1 files changed, 0 insertions, 172 deletions
diff --git a/service/test/unit/bitmask_libraries/test_session.py b/service/test/unit/bitmask_libraries/test_session.py deleted file mode 100644 index 84f9f023..00000000 --- a/service/test/unit/bitmask_libraries/test_session.py +++ /dev/null @@ -1,172 +0,0 @@ -# -# Copyright (c) 2014 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 <http://www.gnu.org/licenses/>. - -from mock import patch -from mock import MagicMock -from twisted.internet import defer -from pixelated.bitmask_libraries.session import LeapSession, SessionCache -from test_abstract_leap import AbstractLeapTest -from leap.common.events.catalog import KEYMANAGER_FINISHED_KEY_GENERATION - - -class SessionTest(AbstractLeapTest): - - def setUp(self): - super(SessionTest, self).setUp() - self.smtp_mock = MagicMock() - - @patch('pixelated.bitmask_libraries.session.register') - @patch('pixelated.bitmask_libraries.session.Account') - @defer.inlineCallbacks - def test_background_jobs_are_started_during_initial_sync(self, *unused): - mailFetcherMock = MagicMock() - with patch('pixelated.bitmask_libraries.session.reactor.callFromThread', new=_execute_func) as _: - with patch.object(LeapSession, '_create_incoming_mail_fetcher', return_value=mailFetcherMock) as _: - session = self._create_session() - yield session.initial_sync() - mailFetcherMock.startService.assert_called_once() - - @patch('pixelated.bitmask_libraries.session.register') - @patch('pixelated.bitmask_libraries.session.unregister') - @patch('pixelated.bitmask_libraries.session.Account') - @defer.inlineCallbacks - def test_that_close_stops_background_jobs(self, *unused): - with patch('pixelated.bitmask_libraries.session.reactor.callFromThread', new=_execute_func) as _: - with patch('pixelated.bitmask_libraries.session.LeapSession._create_incoming_mail_fetcher') as mail_fetcher_mock: - session = self._create_session() - yield session.initial_sync() - session.close() - mail_fetcher_mock.stopService.assert_called_once() - - def test_that_sync_deferes_to_soledad(self): - with patch('pixelated.bitmask_libraries.session.reactor.callFromThread', new=_execute_func) as _: - with patch('pixelated.bitmask_libraries.session.LeapSession._create_incoming_mail_fetcher') as mail_fetcher_mock: - session = self._create_session() - yield session.sync() - self.soledad_session.sync.assert_called_once() - - def test_session_registers_to_generated_keys(self): - email = 'someone@somedomain.tld' - self.provider.address_for.return_value = email - with patch('pixelated.bitmask_libraries.session.register') as register_mock: - session = self._create_session() - - register_mock.assert_called_once_with(KEYMANAGER_FINISHED_KEY_GENERATION, session._set_fresh_account, uid=email) - - @patch('pixelated.bitmask_libraries.session.register') - def test_close_unregisters_from_generate_keys_events(self, _): - email = 'someone@somedomain.tld' - self.provider.address_for.return_value = email - session = self._create_session() - - with patch('pixelated.bitmask_libraries.session.unregister') as unregister_mock: - session.close() - - unregister_mock.assert_called_once_with(KEYMANAGER_FINISHED_KEY_GENERATION, uid=email) - - @patch('pixelated.bitmask_libraries.session.register') - def test_close_stops_soledad(self, _): - email = 'someone@somedomain.tld' - self.provider.address_for.return_value = email - session = self._create_session() - - with patch('pixelated.bitmask_libraries.session.unregister') as unregister_mock: - session.close() - - self.soledad_session.close.assert_called_once_with() - - @patch('pixelated.bitmask_libraries.session.register') - def test_close_removes_session_from_cache(self, _): - email = 'someone@somedomain.tld' - self.provider.address_for.return_value = email - session = self._create_session() - - key = SessionCache.session_key(self.provider, self.auth.username) - SessionCache.remember_session(key, session) - - self.assertEqual(session, SessionCache.lookup_session(key)) - - with patch('pixelated.bitmask_libraries.session.unregister') as unregister_mock: - session.close() - - self.assertIsNone(SessionCache.lookup_session(key)) - - @patch('pixelated.bitmask_libraries.session.register') - def test_close_ends_account_session(self, _): - account_mock = MagicMock() - email = 'someone@somedomain.tld' - self.provider.address_for.return_value = email - session = self._create_session() - session.account = account_mock - - with patch('pixelated.bitmask_libraries.session.unregister') as unregister_mock: - session.close() - - account_mock.end_session.assert_called_once_with() - - @patch('pixelated.bitmask_libraries.session.register') - def test_session_fresh_is_initially_false(self, _): - session = self._create_session() - - self.assertFalse(session.fresh_account) - - @patch('pixelated.bitmask_libraries.session.register') - def test_session_sets_status_to_fresh_on_key_generation_event(self, _): - session = self._create_session() - self.provider.address_for.return_value = 'someone@somedomain.tld' - - session._set_fresh_account(None, 'someone@somedomain.tld') - - self.assertTrue(session.fresh_account) - - @patch('pixelated.bitmask_libraries.session.register') - def test_closed_session_not_reused(self, _): - session = self._create_session() - SessionCache.remember_session('somekey', session) - session._is_closed = True - - result = SessionCache.lookup_session('somekey') - - self.assertIsNone(result) - - @patch('pixelated.bitmask_libraries.session.register') - def test_session_does_not_set_status_fresh_for_unkown_emails(self, _): - session = self._create_session() - self.provider.address_for.return_value = 'someone@somedomain.tld' - - session._set_fresh_account(None, 'another_email@somedomain.tld') - - self.assertFalse(session.fresh_account) - - @patch('pixelated.bitmask_libraries.session.register') - @patch('pixelated.bitmask_libraries.session.unregister') - @patch('pixelated.bitmask_libraries.session.Account') - @defer.inlineCallbacks - def test_session_initial_sync_only_triggered_once(self, *unused): - mailFetcherMock = MagicMock() - with patch('pixelated.bitmask_libraries.session.reactor.callFromThread', new=_execute_func) as _: - with patch.object(LeapSession, '_create_incoming_mail_fetcher', return_value=mailFetcherMock) as _: - session = self._create_session() - session._has_been_initially_synced = True - yield session.initial_sync() - self.assertFalse(mailFetcherMock.startService.called) - - def _create_session(self): - return LeapSession(self.provider, self.auth, self.mail_store, self.soledad_session, self.nicknym, self.smtp_mock) - - -def _execute_func(func): - func() |