[Pkg-gnupg-commit] [gpgme] 136/412: python: Improve and test Context.wait.

Daniel Kahn Gillmor dkg at fifthhorseman.net
Thu Sep 22 21:26:33 UTC 2016


This is an automated email from the git hooks/post-receive script.

dkg pushed a commit to branch master
in repository gpgme.

commit 00ff6d07330028da370c869e3ec442eb76f8cbb8
Author: Justus Winter <justus at gnupg.org>
Date:   Tue May 24 17:57:10 2016 +0200

    python: Improve and test Context.wait.
    
    * lang/python/pyme/core.py (Context.wait): Improve docstring.  As the
    context passed to 'gpgme_wait' is never NULL, it is pointless to look
    at the returned context.  Always raise exceptions.
    * lang/python/tests/Makefile.am (pytests): Add new test.
    * lang/python/tests/t-wait.py: New file.
    
    Signed-off-by: Justus Winter <justus at gnupg.org>
---
 lang/python/pyme/core.py      | 18 ++++++------------
 lang/python/tests/Makefile.am |  3 ++-
 lang/python/tests/t-wait.py   | 42 ++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 50 insertions(+), 13 deletions(-)

diff --git a/lang/python/pyme/core.py b/lang/python/pyme/core.py
index aca5ec2..5f8378d 100644
--- a/lang/python/pyme/core.py
+++ b/lang/python/pyme/core.py
@@ -316,23 +316,17 @@ class Context(GpgmeWrapper):
         errorcheck(pygpgme.gpgme_ctx_set_engine_info(self.wrapped, proto, file_name, home_dir))
 
     def wait(self, hang):
-        """Wait for asynchronous call to finish. Wait forever if hang is True
+        """Wait for asynchronous call to finish. Wait forever if hang is True.
+        Raises an exception on errors.
 
-        Return:
-            On an async call completion its return status.
-            On timeout - None.
+        Please read the GPGME manual for more information.
 
-        Please read the GPGME manual for more information."""
+        """
         ptr = pygpgme.new_gpgme_error_t_p()
-        context = pygpgme.gpgme_wait(self.wrapped, ptr, hang)
+        pygpgme.gpgme_wait(self.wrapped, ptr, hang)
         status = pygpgme.gpgme_error_t_p_value(ptr)
         pygpgme.delete_gpgme_error_t_p(ptr)
-
-        if context == None:
-            errorcheck(status)
-            return None
-        else:
-            return status
+        errorcheck(status)
 
     def op_edit(self, key, func, fnc_value, out):
         """Start key editing using supplied callback function"""
diff --git a/lang/python/tests/Makefile.am b/lang/python/tests/Makefile.am
index 236354f..7df40a2 100644
--- a/lang/python/tests/Makefile.am
+++ b/lang/python/tests/Makefile.am
@@ -39,7 +39,8 @@ py_tests = t-wrapper.py \
 	t-signers.py \
 	t-decrypt.py \
 	t-export.py \
-	t-edit.py
+	t-edit.py \
+	t-wait.py
 
 TESTS = $(top_srcdir)/tests/gpg/initial.test \
 	$(py_tests) \
diff --git a/lang/python/tests/t-wait.py b/lang/python/tests/t-wait.py
new file mode 100755
index 0000000..7eaa46a
--- /dev/null
+++ b/lang/python/tests/t-wait.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python3
+
+# Copyright (C) 2016 g10 Code GmbH
+#
+# This file is part of GPGME.
+#
+# GPGME is free software; you can redistribute it and/or modify it
+# under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# GPGME is distributed in the hope that it will be useful, but WITHOUT
+# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+# or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General
+# Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this program; if not, see <http://www.gnu.org/licenses/>.
+
+import time
+from pyme import core, constants, errors
+import support
+
+support.init_gpgme(constants.PROTOCOL_OpenPGP)
+c = core.Context()
+c.set_armor(True)
+
+# Checking a message without a signature.
+sig = core.Data("foo\n")
+text = core.Data()
+c.op_verify_start(sig, None, text)
+
+try:
+    while True:
+        err = c.wait(False)
+        if err:
+            break
+        time.sleep(0.1)
+except Exception as e:
+    assert e.getcode() == errors.NO_DATA
+else:
+    assert False, "Expected an error, got none"

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-gnupg/gpgme.git



More information about the Pkg-gnupg-commit mailing list