aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lang/python/gpgme.i9
-rwxr-xr-xlang/python/tests/t-keylist.py12
2 files changed, 21 insertions, 0 deletions
diff --git a/lang/python/gpgme.i b/lang/python/gpgme.i
index 73533d0c..c7d89dba 100644
--- a/lang/python/gpgme.i
+++ b/lang/python/gpgme.i
@@ -541,6 +541,15 @@ wrapresult(gpgme_vfs_mount_result_t, "VFSMountResult")
}
}
+
+/* With SWIG, you can define default arguments for parameters.
+ * While it's legal in C++ it is not in C, so we cannot change the
+ * already existing gpgme.h. We need, however, to declare the function
+ * *before* SWIG loads it from gpgme.h. Hence, we define it here. */
+gpgme_error_t gpgme_op_keylist_start (gpgme_ctx_t ctx,
+ const char *pattern="",
+ int secret_only=0);
+
/* Include the unmodified <gpgme.h> for cc, and the cleaned-up local
version for SWIG. We do, however, want to hide certain fields on
some structs, which we provide prior to including the version for
diff --git a/lang/python/tests/t-keylist.py b/lang/python/tests/t-keylist.py
index ea2a7240..5077ca69 100755
--- a/lang/python/tests/t-keylist.py
+++ b/lang/python/tests/t-keylist.py
@@ -219,6 +219,18 @@ result = c.op_keylist_result()
assert not result.truncated, "Key listing unexpectedly truncated"
+# We test for a parameter-less keylist
+keyring_length = len(list(c.op_keylist_all()))
+assert keyring_length > 1,\
+ "Expected to find some keys, but got %r" % keyring_length
+
+# Then we do want to call with a pattern, only
+# i.e. without giving secret=0
+alpha_keys = list(c.op_keylist_all(b"Alpha"))
+assert len(alpha_keys) == 1, "Expected only one key for 'Alpha', got %r" % len(alpha_keys)
+
+
+
for i, key in enumerate(c.keylist()):
try:
if len(keys[i]) == 4: