python: Fix hook.
authorJustus Winter <justus@gnupg.org>
Mon, 23 May 2016 16:23:34 +0000 (18:23 +0200)
committerJustus Winter <justus@gnupg.org>
Mon, 23 May 2016 16:23:34 +0000 (18:23 +0200)
* lang/python/helpers.c (pyProgressCb): Fix getting hook data.
* lang/python/tests/t-callbacks.py: Show that this works.

Signed-off-by: Justus Winter <justus@gnupg.org>
lang/python/helpers.c
lang/python/tests/t-callbacks.py

index e305574..0ee24a3 100644 (file)
@@ -235,7 +235,7 @@ static void pyProgressCb(void *hook, const char *what, int type, int current,
   self = PyTuple_GetItem(pyhook, 0);
   func = PyTuple_GetItem(pyhook, 1);
   if (PyTuple_Size(pyhook) == 3) {
-    dataarg = PyTuple_GetItem(pyhook, 1);
+    dataarg = PyTuple_GetItem(pyhook, 2);
     args = PyTuple_New(5);
   } else {
     args = PyTuple_New(4);
index 13ce486..70f641d 100755 (executable)
@@ -91,12 +91,13 @@ Expire-Date: 2020-12-31
 
 messages = []
 def progress_cb(what, typ, current, total, hook=None):
+    assert hook == messages
     messages.append(
         "PROGRESS UPDATE: what = {}, type = {}, current = {}, total = {}"
         .format(what, typ, current, total))
 
 c = core.Context()
-c.set_progress_cb(progress_cb, None)
+c.set_progress_cb(progress_cb, messages)
 c.op_genkey(parms, None, None)
 assert len(messages) > 0