[tests] Add regression tests for sign_used
authorFolker Bernitt <fbernitt@thoughtworks.com>
Thu, 24 Sep 2015 09:46:14 +0000 (11:46 +0200)
committerRuben Pollan <meskio@sindominio.net>
Thu, 24 Sep 2015 15:09:43 +0000 (17:09 +0200)
Fails if wrong address is passed to the put_key method,
or wrong key is marked as sign_used.

- Related: #7420

src/leap/keymanager/tests/test_keymanager.py

index 3b4aa0f..7b90ae1 100644 (file)
@@ -399,6 +399,39 @@ class KeyManagerKeyManagementTestCase(KeyManagerWithSoledadTestCase):
             content = f.read()
         return content
 
+    @inlineCallbacks
+    def test_decrypt_updates_sign_used_for_signer(self):
+        # given
+        km = self._key_manager()
+        yield km._wrapper_map[OpenPGPKey].put_ascii_key(PRIVATE_KEY, ADDRESS)
+        yield km._wrapper_map[OpenPGPKey].put_ascii_key(
+            PRIVATE_KEY_2, ADDRESS_2)
+        encdata = yield km.encrypt('data', ADDRESS, OpenPGPKey,
+                                   sign=ADDRESS_2, fetch_remote=False)
+        yield km.decrypt(encdata, ADDRESS, OpenPGPKey, verify=ADDRESS_2, fetch_remote=False)
+
+        # when
+        key = yield km.get_key(ADDRESS_2, OpenPGPKey, fetch_remote=False)
+
+        # then
+        self.assertEqual(True, key.sign_used)
+
+    @inlineCallbacks
+    def test_decrypt_does_not_update_sign_used_for_recipient(self):
+        # given
+        km = self._key_manager()
+        yield km._wrapper_map[OpenPGPKey].put_ascii_key(PRIVATE_KEY, ADDRESS)
+        yield km._wrapper_map[OpenPGPKey].put_ascii_key(PRIVATE_KEY_2, ADDRESS_2)
+        encdata = yield km.encrypt('data', ADDRESS, OpenPGPKey,
+                                   sign=ADDRESS_2, fetch_remote=False)
+        yield km.decrypt(encdata, ADDRESS, OpenPGPKey, verify=ADDRESS_2, fetch_remote=False)
+
+        # when
+        key = yield km.get_key(ADDRESS, OpenPGPKey, private=False, fetch_remote=False)
+
+        # then
+        self.assertEqual(False, key.sign_used)
+
 
 class KeyManagerCryptoTestCase(KeyManagerWithSoledadTestCase):