diff options
Diffstat (limited to 'service')
-rw-r--r-- | service/pixelated/bitmask_libraries/keymanager.py | 25 | ||||
-rw-r--r-- | service/test/unit/bitmask_libraries/test_keymanager.py | 20 |
2 files changed, 20 insertions, 25 deletions
diff --git a/service/pixelated/bitmask_libraries/keymanager.py b/service/pixelated/bitmask_libraries/keymanager.py index 84e3f6aa..28d5f9db 100644 --- a/service/pixelated/bitmask_libraries/keymanager.py +++ b/service/pixelated/bitmask_libraries/keymanager.py @@ -48,16 +48,19 @@ class Keymanager(object): def generate_openpgp_key(self): current_key = yield self._key_exists(self._email) if not current_key: - yield self._generate_key_and_send_to_leap() + current_key = yield self._generate_key_and_send_to_leap() elif current_key.needs_renewal(DEFAULT_EXTENSION_THRESHOLD): - yield self._regenerate_key_and_send_to_leap() + current_key = yield self._regenerate_key_and_send_to_leap() + + logger.info("Current key for {}: {}".format(self._email, current_key.fingerprint)) @defer.inlineCallbacks def _regenerate_key_and_send_to_leap(self): logger.info("Regenerating keys - this could take a while...") - yield self.keymanager.regenerate_key() + key = yield self.keymanager.regenerate_key() try: - yield self._send_key_to_leap() + yield self.keymanager.send_key() + defer.returnValue(key) except Exception as e: # what to be done when upload key error raise UploadKeyError(e.message) @@ -65,9 +68,10 @@ class Keymanager(object): @defer.inlineCallbacks def _generate_key_and_send_to_leap(self): logger.info("Generating keys - this could take a while...") - yield self._gen_key() + key = yield self.keymanager.gen_key() try: - yield self._send_key_to_leap() + yield self.keymanager.send_key() + defer.returnValue(key) except Exception as e: yield self.delete_key_pair() raise UploadKeyError(e.message) @@ -86,15 +90,6 @@ class Keymanager(object): defer.returnValue(key) @defer.inlineCallbacks - def _gen_key(self): - key = yield self.keymanager.gen_key() - defer.returnValue(key) - - @defer.inlineCallbacks - def _send_key_to_leap(self): - yield self.keymanager.send_key() - - @defer.inlineCallbacks def delete_key_pair(self): private_key = yield self.get_key(self._email, private=True, fetch_remote=False) public_key = yield self.get_key(self._email, private=False, fetch_remote=False) diff --git a/service/test/unit/bitmask_libraries/test_keymanager.py b/service/test/unit/bitmask_libraries/test_keymanager.py index eb6ba79b..81ba7b65 100644 --- a/service/test/unit/bitmask_libraries/test_keymanager.py +++ b/service/test/unit/bitmask_libraries/test_keymanager.py @@ -13,7 +13,7 @@ # # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see <http://www.gnu.org/licenses/>. -import datetime + from mock import patch, MagicMock from mockito import when from unittest import TestCase @@ -70,42 +70,42 @@ class KeymanagerTest(TestCase): def test_keymanager_generate_openpgp_key_generates_key_correctly(self): when(self.keymanager)._key_exists('test_user@some-server.test').thenReturn(None) - self.keymanager._gen_key = MagicMock() - self.keymanager._send_key_to_leap = MagicMock() + self.leap_keymanager.gen_key = MagicMock() + self.leap_keymanager.send_key = MagicMock() self.keymanager.generate_openpgp_key() - self.keymanager._gen_key.assert_called_once() - self.keymanager._send_key_to_leap.assert_called_once() + self.leap_keymanager.gen_key.assert_called_once() + self.leap_keymanager.send_key.assert_called_once() def test_keymanager_generate_openpgp_key_doesnt_regenerate_preexisting_key(self): mock_open_pgp_key = MagicMock() mock_open_pgp_key.needs_renewal = MagicMock(return_value=False) when(self.keymanager)._key_exists('test_user@some-server.test').thenReturn(mock_open_pgp_key) - self.keymanager._gen_key = MagicMock() + self.leap_keymanager.gen_key = MagicMock() self.keymanager.generate_openpgp_key() - self.keymanager._gen_key.assert_not_called() + self.leap_keymanager.gen_key.assert_not_called() def test_keymanager_generate_openpgp_key_doesnt_upload_preexisting_key(self): mock_open_pgp_key = MagicMock() mock_open_pgp_key.needs_renewal = MagicMock(return_value=False) when(self.keymanager)._key_exists('test_user@some-server.test').thenReturn(mock_open_pgp_key) - self.keymanager._send_key_to_leap = MagicMock() + self.leap_keymanager.send_key = MagicMock() self.keymanager.generate_openpgp_key() - self.keymanager._send_key_to_leap.assert_not_called() + self.leap_keymanager.send_key.assert_not_called() @defer.inlineCallbacks def test_keymanager_generate_openpgp_key_deletes_key_when_upload_fails(self): when(self.keymanager)._key_exists('test_user@some-server.test').thenReturn(None) self.keymanager.delete_key_pair = MagicMock() - when(self.keymanager)._send_key_to_leap().thenRaise(Exception('Could not upload key')) + when(self.leap_keymanager).send_key().thenRaise(Exception('Could not upload key')) with self.assertRaises(UploadKeyError): yield self.keymanager.generate_openpgp_key() |