From f6cc6fa3e7b1ea3b0a85ff35e08dbb0719a24cbc Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Piotr=20Ma=C5=9Blanka?= <piotr.maslanka@henrietta.com.pl>
Date: Mon, 12 Dec 2016 21:43:08 +0100
Subject: [PATCH] ack() and nack() can be waited upon

---
 coolamqp/handler.py  | 15 ++++++++++-----
 coolamqp/messages.py |  6 ++++--
 setup.py             |  2 +-
 3 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/coolamqp/handler.py b/coolamqp/handler.py
index aed7aea..7b07bff 100644
--- a/coolamqp/handler.py
+++ b/coolamqp/handler.py
@@ -210,10 +210,13 @@ class ClusterHandlerThread(threading.Thread):
         Order acknowledging a message.
         :param receivedMessage: a ReceivedMessage object to ack
         :param on_completed: callable/0 to call when acknowledgemenet succeeded
+        :return: an AcknowledgeMess
         """
-        self.order_queue.append(AcknowledgeMessage(receivedMessage.connect_id,
+        a = AcknowledgeMessage(receivedMessage.connect_id,
                                                    receivedMessage.delivery_tag,
-                                                   on_completed=on_completed))
+                                                   on_completed=on_completed)
+        self.order_queue.append(a)
+        return a
 
 
     def _do_nackmessage(self, receivedMessage, on_completed=None):
@@ -222,6 +225,8 @@ class ClusterHandlerThread(threading.Thread):
         :param receivedMessage: a ReceivedMessage object to ack
         :param on_completed: callable/0 to call when acknowledgemenet succeeded
         """
-        self.order_queue.append(NAcknowledgeMessage(receivedMessage.connect_id,
-                                                 receivedMessage.delivery_tag,
-                                                 on_completed=on_completed))
+        a = NAcknowledgeMessage(receivedMessage.connect_id,
+                                receivedMessage.delivery_tag,
+                                on_completed=on_completed)
+        self.order_queue.append(a)
+        return a
diff --git a/coolamqp/messages.py b/coolamqp/messages.py
index fde01b2..a3667bd 100644
--- a/coolamqp/messages.py
+++ b/coolamqp/messages.py
@@ -47,16 +47,18 @@ class ReceivedMessage(Message):
 
         :param on_completed: callable/0 to call on acknowledged. Callable will be executed in
             ClusterHandlerThread's context.
+        :return: an Order, that can ve waited upon for a result
         """
-        self.cht._do_nackmessage(self, on_completed=on_completed)
+        return self.cht._do_nackmessage(self, on_completed=on_completed)
 
     def ack(self, on_completed=None):
         """
         Acknowledge this message to the broker.
         :param on_completed: callable/0 to call on acknowledged. Callable will be executed in
             ClusterHandlerThread's context.
+        :return: an Order, that can ve waited upon for a result
         """
-        self.cht._do_ackmessage(self, on_completed=on_completed)
+        return self.cht._do_ackmessage(self, on_completed=on_completed)
 
 
 class Exchange(object):
diff --git a/setup.py b/setup.py
index 07e0a05..c206b4d 100644
--- a/setup.py
+++ b/setup.py
@@ -3,7 +3,7 @@
 from distutils.core import setup
 
 setup(name='CoolAMQP',
-      version='0.5',
+      version='0.6',
       description='The AMQP client library',
       author=u'DMS Serwis s.c.',
       author_email='piotrm@smok.co',
-- 
GitLab