From 5243c7eb4c58a4419da2103af8c1e4004f01053b Mon Sep 17 00:00:00 2001 From: Ruben Pollan Date: Tue, 24 Oct 2017 11:53:10 +0200 Subject: [feat] add fetch key by fingerprint to keymanager - Resolves: #9023 --- tests/integration/keymanager/test_keymanager.py | 37 ++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) (limited to 'tests') diff --git a/tests/integration/keymanager/test_keymanager.py b/tests/integration/keymanager/test_keymanager.py index 981fc6ba..1e836a5d 100644 --- a/tests/integration/keymanager/test_keymanager.py +++ b/tests/integration/keymanager/test_keymanager.py @@ -47,6 +47,8 @@ from common import ( PUBLIC_KEY_2, PRIVATE_KEY, PRIVATE_KEY_2, + NEW_PUB_KEY, + OLD_AND_NEW_KEY_ADDRESS ) @@ -211,7 +213,7 @@ class KeyManagerKeyManagementTestCase(KeyManagerWithSoledadTestCase): pubkey = yield km.get_key(ADDRESS, fetch_remote=False) # setup expected args data = urllib.urlencode({ - km.PUBKEY_KEY: pubkey.key_data, + km._nicknym.PUBKEY_KEY: pubkey.key_data, }) headers = {'Authorization': [str('Token token=%s' % token)]} headers['Content-Type'] = ['application/x-www-form-urlencoded'] @@ -608,6 +610,39 @@ class KeyManagerCryptoTestCase(KeyManagerWithSoledadTestCase): fetch_remote=False)) return self.assertFailure(d, errors.KeyNotFound) + @defer.inlineCallbacks + def test_fetch_key_fingerprint(self): + km = self._key_manager(user=ADDRESS_2) + km._nicknym.fetch_key_with_fingerprint = mock.Mock( + return_value=defer.succeed(PUBLIC_KEY)) + yield km.fetch_key_fingerprint(ADDRESS, KEY_FINGERPRINT) + key = yield km.get_key(ADDRESS, fetch_remote=False) + self.assertEqual(key.fingerprint, KEY_FINGERPRINT) + + def test_fetch_key_fingerprint_wrong_fp(self): + km = self._key_manager(user=ADDRESS_2) + km._nicknym.fetch_key_with_fingerprint = mock.Mock( + return_value=defer.succeed(NEW_PUB_KEY)) + d = km.fetch_key_fingerprint(OLD_AND_NEW_KEY_ADDRESS, KEY_FINGERPRINT) + return self.assertFailure(d, errors.KeyNotFound) + + @defer.inlineCallbacks + def test_fetch_key_fingerprint_keep_usage(self): + km = self._key_manager(user=ADDRESS_2) + key, _ = km._openpgp.parse_key(PUBLIC_KEY, ADDRESS) + key.sign_used = True + yield km.put_key(key) + + km._nicknym.fetch_key_with_fingerprint = mock.Mock( + return_value=defer.succeed(PUBLIC_KEY)) + yield km.fetch_key_fingerprint(ADDRESS, KEY_FINGERPRINT) + + key = yield km.get_key(ADDRESS, fetch_remote=False) + self.assertEqual(key.fingerprint, KEY_FINGERPRINT) + self.assertTrue(key.sign_used) + self.assertFalse(key.encr_used) + + if __name__ == "__main__": import unittest unittest.main() -- cgit v1.2.3