diff options
author | Justus Winter <[email protected]> | 2016-07-28 15:44:18 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2016-07-28 15:50:07 +0000 |
commit | 5a7c7a86f7e8eaf10e37138617a2d838f9d4466f (patch) | |
tree | 33c5b869cb738dff167d978f8db0cd7b5b4bf261 | |
parent | src: Fix dummy engine versions. (diff) | |
download | gpgme-5a7c7a86f7e8eaf10e37138617a2d838f9d4466f.tar.gz gpgme-5a7c7a86f7e8eaf10e37138617a2d838f9d4466f.zip |
python: Improve error handling.
* lang/python/pyme/core.py (Context.protocol): Check that the engine
is usable before setting the protocol.
(Context._errorcheck): Add missing functions.
Signed-off-by: Justus Winter <[email protected]>
-rw-r--r-- | lang/python/pyme/core.py | 26 |
1 files changed, 18 insertions, 8 deletions
diff --git a/lang/python/pyme/core.py b/lang/python/pyme/core.py index 50c6c0fd..e12dc7bd 100644 --- a/lang/python/pyme/core.py +++ b/lang/python/pyme/core.py @@ -546,6 +546,7 @@ class Context(GpgmeWrapper): return self.get_protocol() @protocol.setter def protocol(self, value): + errorcheck(gpgme.gpgme_engine_check_version(value)) self.set_protocol(value) _ctype = 'gpgme_ctx_t' @@ -553,14 +554,23 @@ class Context(GpgmeWrapper): def _errorcheck(self, name): """This function should list all functions returning gpgme_error_t""" - if (name.startswith('gpgme_op_') and \ - not name.endswith('_result')) or \ - name == 'gpgme_signers_add' or \ - name == 'gpgme_set_locale' or \ - name == 'gpgme_set_keylist_mode' or \ - name == 'gpgme_set_protocol': - return 1 - return 0 + return ((name.startswith('gpgme_op_') + and not name.endswith('_result')) + or name in { + 'gpgme_set_ctx_flag', + 'gpgme_set_protocol', + 'gpgme_set_sub_protocol', + 'gpgme_set_keylist_mode', + 'gpgme_set_pinentry_mode', + 'gpgme_set_locale', + 'gpgme_set_engine_info', + 'gpgme_signers_add', + 'gpgme_get_sig_key', + 'gpgme_sig_notation_add', + 'gpgme_cancel', + 'gpgme_cancel_async', + 'gpgme_cancel_get_key', + }) _boolean_properties = {'armor', 'textmode', 'offline'} |