From 7c6a87acaead5f54e1f2155ecf0a089eff97d654 Mon Sep 17 00:00:00 2001 From: Kali Kaneko Date: Mon, 13 May 2013 23:06:35 +0900 Subject: use temporary openpgpwrapper as a context manager in this way we implicitely catch any exception during the wrapped call, and ensure that the destructor is always called. --- src/leap/common/tests/test_keymanager.py | 47 ++++++++++++++------------------ 1 file changed, 21 insertions(+), 26 deletions(-) (limited to 'src/leap/common/tests') diff --git a/src/leap/common/tests/test_keymanager.py b/src/leap/common/tests/test_keymanager.py index 48f7273..a7aa1ca 100644 --- a/src/leap/common/tests/test_keymanager.py +++ b/src/leap/common/tests/test_keymanager.py @@ -30,16 +30,15 @@ except ImportError: from leap.common.testing.basetest import BaseLeapTest from leap.soledad import Soledad -from leap.soledad.crypto import SoledadCrypto - +#from leap.soledad.crypto import SoledadCrypto from leap.common.keymanager import ( KeyManager, openpgp, KeyNotFound, NoPasswordGiven, - TAGS_INDEX, - TAGS_AND_PRIVATE_INDEX, + #TAGS_INDEX, + #TAGS_AND_PRIVATE_INDEX, ) from leap.common.keymanager.openpgp import OpenPGPKey from leap.common.keymanager.keys import ( @@ -240,14 +239,16 @@ class OpenPGPCryptoTestCase(KeyManagerWithSoledadTestCase): KeyNotFound, pgp.get_key, ADDRESS, private=True) def test_openpgp_encrypt_decrypt_sym(self): - cyphertext = openpgp.encrypt_sym('data', 'pass') + cyphertext = openpgp.encrypt_sym( + 'data', passphrase='pass') self.assertTrue(cyphertext is not None) self.assertTrue(cyphertext != '') self.assertTrue(cyphertext != 'data') self.assertTrue(openpgp.is_encrypted_sym(cyphertext)) self.assertFalse(openpgp.is_encrypted_asym(cyphertext)) self.assertTrue(openpgp.is_encrypted(cyphertext)) - plaintext = openpgp.decrypt_sym(cyphertext, 'pass') + plaintext = openpgp.decrypt_sym( + cyphertext, passphrase='pass') self.assertEqual('data', plaintext) def test_verify_with_private_raises(self): @@ -298,7 +299,7 @@ class OpenPGPCryptoTestCase(KeyManagerWithSoledadTestCase): pubkey = pgp.get_key(ADDRESS, private=False) self.assertRaises( AssertionError, - openpgp.encrypt_sym, data, '123', sign=pubkey) + openpgp.encrypt_sym, data, passphrase='123', sign=pubkey) def test_decrypt_asym_verify_with_private_raises(self): pgp = openpgp.OpenPGPScheme(self._soledad) @@ -321,22 +322,11 @@ class OpenPGPCryptoTestCase(KeyManagerWithSoledadTestCase): pubkey = pgp.get_key(ADDRESS, private=False) encrypted_and_signed = openpgp.encrypt_asym(data, pubkey, sign=privkey) pgp.put_ascii_key(PUBLIC_KEY_2) - wrongkey = pgp.get_key('anotheruser@leap.se') + wrongkey = pgp.get_key(ADDRESS_2) self.assertRaises( errors.InvalidSignature, openpgp.verify, encrypted_and_signed, wrongkey) - def test_decrypt_sym_verify_with_private_raises(self): - pgp = openpgp.OpenPGPScheme(self._soledad) - pgp.put_ascii_key(PRIVATE_KEY) - data = 'data' - privkey = pgp.get_key(ADDRESS, private=True) - encrypted_and_signed = openpgp.encrypt_sym(data, '123', sign=privkey) - self.assertRaises( - AssertionError, - openpgp.decrypt_sym, - encrypted_and_signed, 'decrypt', verify=privkey) - def test_decrypt_sym_verify_with_private_raises(self): pgp = openpgp.OpenPGPScheme(self._soledad) pgp.put_ascii_key(PRIVATE_KEY) @@ -344,7 +334,7 @@ class OpenPGPCryptoTestCase(KeyManagerWithSoledadTestCase): privkey = pgp.get_key(ADDRESS, private=True) encrypted_and_signed = openpgp.encrypt_sym(data, '123', sign=privkey) pgp.put_ascii_key(PUBLIC_KEY_2) - wrongkey = pgp.get_key('anotheruser@leap.se') + wrongkey = pgp.get_key(ADDRESS_2) self.assertRaises( errors.InvalidSignature, openpgp.verify, encrypted_and_signed, wrongkey) @@ -385,8 +375,7 @@ class OpenPGPCryptoTestCase(KeyManagerWithSoledadTestCase): self.assertEqual(data, res) -class KeyManagerKeyManagementTestCase( - KeyManagerWithSoledadTestCase): +class KeyManagerKeyManagementTestCase(KeyManagerWithSoledadTestCase): def test_get_all_keys_in_db(self): km = self._key_manager() @@ -477,15 +466,15 @@ class KeyManagerKeyManagementTestCase( headers = {'content-type': 'application/json'} def json(self): - return {'address': 'anotheruser@leap.se', 'keys': []} + return {'address': ADDRESS_2, 'keys': []} km._fetcher.get = Mock( return_value=Response()) # do the fetch - km.fetch_keys_from_server('anotheruser@leap.se') + km.fetch_keys_from_server(ADDRESS_2) # and verify the call km._fetcher.get.assert_called_once_with( - km._nickserver_url + '/key/' + 'anotheruser@leap.se', + km._nickserver_url + '/key/' + ADDRESS_2, ) def test_refresh_keys(self): @@ -495,11 +484,13 @@ class KeyManagerKeyManagementTestCase( km.fetch_keys_from_server = Mock(return_value=[]) km.refresh_keys() km.fetch_keys_from_server.assert_called_once_with( - 'leap@leap.se' + ADDRESS ) # Key material for testing + +# key 24D18DDF: public key "Leap Test Key " KEY_FINGERPRINT = "E36E738D69173C13D709E44F2F455E2824D18DDF" PUBLIC_KEY = """ -----BEGIN PGP PUBLIC KEY BLOCK----- @@ -662,6 +653,7 @@ RZXoH+FTg9UAW87eqU610npOkT6cRaBxaMK/mDtGNdc= -----END PGP PRIVATE KEY BLOCK----- """ +# key 7FEE575A: public key "anotheruser " PUBLIC_KEY_2 = """ -----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v1.4.10 (GNU/Linux) @@ -719,3 +711,6 @@ THx7N776fcYHGumbqUMYrxrcZSbNveE6SaK8fphRam1dewM0 =a5gs -----END PGP PRIVATE KEY BLOCK----- """ +import unittest +if __name__ == "__main__": + unittest.main() -- cgit v1.2.3