aboutsummaryrefslogtreecommitdiffstats
path: root/lang/python/tests/t-quick-key-manipulation.py
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2017-02-17 11:18:56 +0000
committerJustus Winter <[email protected]>2017-02-17 11:18:56 +0000
commitde8494b16bc50c60a8438f2cae1f8c88e8949f7a (patch)
tree3fae3b3fd43eb9e860fc446415dccd0d6358044c /lang/python/tests/t-quick-key-manipulation.py
parentpython: Fix using strings as commands in the assuan protocol. (diff)
downloadgpgme-de8494b16bc50c60a8438f2cae1f8c88e8949f7a.tar.gz
gpgme-de8494b16bc50c60a8438f2cae1f8c88e8949f7a.zip
python: Fix teardown of ephemeral contexts.
* lang/python/tests/support.py (EphemeralContext): New function. * lang/python/tests/t-quick-key-creation.py: Use the new function to manage ephemeral contexts. * lang/python/tests/t-quick-key-manipulation.py: Likewise. * lang/python/tests/t-quick-subkey-creation.py: Likewise. -- Previously, there was a problem with cleaning up ephemeral home directories. shutil.rmtree deleted the agents main socket, gpg-agent detected that, and deleted the other sockets as well, racing shutil.rmtree which did not cope will with that. Fix this by asking the agent nicely to shut down. Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to 'lang/python/tests/t-quick-key-manipulation.py')
-rwxr-xr-xlang/python/tests/t-quick-key-manipulation.py117
1 files changed, 53 insertions, 64 deletions
diff --git a/lang/python/tests/t-quick-key-manipulation.py b/lang/python/tests/t-quick-key-manipulation.py
index 62c395ab..12c18ce5 100755
--- a/lang/python/tests/t-quick-key-manipulation.py
+++ b/lang/python/tests/t-quick-key-manipulation.py
@@ -21,83 +21,72 @@ from __future__ import absolute_import, print_function, unicode_literals
del absolute_import, print_function, unicode_literals
import gpg
-import itertools
-import os
-import shutil
-import time
import support
alpha = "Alpha <[email protected]>"
bravo = "Bravo <[email protected]>"
-def copy_configuration(destination):
- home = os.environ['GNUPGHOME']
- shutil.copy(os.path.join(home, "gpg.conf"), destination)
- shutil.copy(os.path.join(home, "gpg-agent.conf"), destination)
+with support.EphemeralContext() as ctx:
+ res = ctx.create_key(alpha, certify=True)
+ key = ctx.get_key(res.fpr)
+ assert len(key.subkeys) == 1, "Expected one primary key and no subkeys"
+ assert len(key.uids) == 1, "Expected exactly one UID"
-with support.TemporaryDirectory() as tmp:
- copy_configuration(tmp)
- with gpg.Context(home_dir=tmp) as ctx:
- res = ctx.create_key(alpha, certify=True)
+ def get_uid(uid):
key = ctx.get_key(res.fpr)
- assert len(key.subkeys) == 1, "Expected one primary key and no subkeys"
- assert len(key.uids) == 1, "Expected exactly one UID"
+ for u in key.uids:
+ if u.uid == uid:
+ return u
+ return None
- def get_uid(uid):
- key = ctx.get_key(res.fpr)
- for u in key.uids:
- if u.uid == uid:
- return u
- return None
+ # sanity check
+ uid = get_uid(alpha)
+ assert uid, "UID alpha not found"
+ assert uid.revoked == 0
- # sanity check
- uid = get_uid(alpha)
- assert uid, "UID alpha not found"
- assert uid.revoked == 0
+ # add bravo
+ ctx.key_add_uid(key, bravo)
+ uid = get_uid(bravo)
+ assert uid, "UID bravo not found"
+ assert uid.revoked == 0
- # add bravo
- ctx.key_add_uid(key, bravo)
- uid = get_uid(bravo)
- assert uid, "UID bravo not found"
- assert uid.revoked == 0
+ # revoke alpha
+ ctx.key_revoke_uid(key, alpha)
+ uid = get_uid(alpha)
+ assert uid, "UID alpha not found"
+ assert uid.revoked == 1
+ uid = get_uid(bravo)
+ assert uid, "UID bravo not found"
+ assert uid.revoked == 0
- # revoke alpha
+ # try to revoke the last UID
+ try:
ctx.key_revoke_uid(key, alpha)
- uid = get_uid(alpha)
- assert uid, "UID alpha not found"
- assert uid.revoked == 1
- uid = get_uid(bravo)
- assert uid, "UID bravo not found"
- assert uid.revoked == 0
-
- # try to revoke the last UID
- try:
- ctx.key_revoke_uid(key, alpha)
- # IMHO this should fail. issue2961.
- # assert False, "Expected an error but got none"
- except gpg.errors.GpgError:
- pass
+ # IMHO this should fail. issue2961.
+ # assert False, "Expected an error but got none"
+ except gpg.errors.GpgError:
+ pass
- # Everything should be the same
- uid = get_uid(alpha)
- assert uid, "UID alpha not found"
- assert uid.revoked == 1
- uid = get_uid(bravo)
- assert uid, "UID bravo not found"
- assert uid.revoked == 0
+ # Everything should be the same
+ uid = get_uid(alpha)
+ assert uid, "UID alpha not found"
+ assert uid.revoked == 1
+ uid = get_uid(bravo)
+ assert uid, "UID bravo not found"
+ assert uid.revoked == 0
- # try to revoke a non-existent UID
- try:
- ctx.key_revoke_uid(key, "i dont exist")
- # IMHO this should fail. issue2963.
- # assert False, "Expected an error but got none"
- except gpg.errors.GpgError:
- pass
+ # try to revoke a non-existent UID
+ try:
+ ctx.key_revoke_uid(key, "i dont exist")
+ # IMHO this should fail. issue2963.
+ # assert False, "Expected an error but got none"
+ except gpg.errors.GpgError:
+ pass
- # try to add an pre-existent UID
- try:
- ctx.key_add_uid(key, bravo)
- assert False, "Expected an error but got none"
- except gpg.errors.GpgError:
- pass
+ # try to add an pre-existent UID
+ try:
+ ctx.key_add_uid(key, bravo)
+ assert False, "Expected an error but got none"
+ except gpg.errors.GpgError:
+ pass