summaryrefslogtreecommitdiff
path: root/qpid/python/tests_0-10
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2008-05-09 09:29:03 +0000
committerGordon Sim <gsim@apache.org>2008-05-09 09:29:03 +0000
commit859f4e37a8b5b5f42861f5abec992251ff942db3 (patch)
tree5a87529bdbf737485b56b1adf371ae22db850b5a /qpid/python/tests_0-10
parent367283cac64f43994c6932d39e954cc02027b9d0 (diff)
downloadqpid-python-859f4e37a8b5b5f42861f5abec992251ff942db3.tar.gz
QPID-1042: ensure delievery record is kept where accept_mode=not-required, acquire_mode=not-acquired and flow_mode=credit
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@654737 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/python/tests_0-10')
-rw-r--r--qpid/python/tests_0-10/message.py27
1 files changed, 26 insertions, 1 deletions
diff --git a/qpid/python/tests_0-10/message.py b/qpid/python/tests_0-10/message.py
index 5f2ee7264f..e21716d855 100644
--- a/qpid/python/tests_0-10/message.py
+++ b/qpid/python/tests_0-10/message.py
@@ -689,6 +689,32 @@ class MessageTests(TestBase010):
#messages should still be on the queue:
self.assertEquals(10, session.queue_query(queue = "q").message_count)
+ def test_acquire_with_no_accept_and_credit_flow(self):
+ """
+ Test that messages recieved unacquired, with accept not
+ required in windowing mode can be acquired.
+ """
+ session = self.session
+ session.queue_declare(queue = "q", exclusive=True, auto_delete=True)
+
+ session.message_transfer(message=Message(session.delivery_properties(routing_key="q"), "acquire me"))
+
+ session.message_subscribe(queue = "q", destination = "a", acquire_mode = 1, accept_mode = 1)
+ session.message_set_flow_mode(flow_mode = session.flow_mode.credit, destination = "a")
+ session.message_flow(unit = session.credit_unit.message, value = 0xFFFFFFFF, destination = "a")
+ session.message_flow(unit = session.credit_unit.byte, value = 0xFFFFFFFF, destination = "a")
+ msg = session.incoming("a").get(timeout = 1)
+ self.assertEquals("acquire me", msg.body)
+ #message should still be on the queue:
+ self.assertEquals(1, session.queue_query(queue = "q").message_count)
+
+ transfers = RangedSet(msg.id)
+ response = session.message_acquire(transfers)
+ #check that we get notification (i.e. message_acquired)
+ self.assert_(msg.id in response.transfers)
+ #message should have been removed from the queue:
+ self.assertEquals(0, session.queue_query(queue = "q").message_count)
+
def test_acquire(self):
"""
Test explicit acquire function
@@ -696,7 +722,6 @@ class MessageTests(TestBase010):
session = self.session
session.queue_declare(queue = "q", exclusive=True, auto_delete=True)
- #use fanout for now:
session.message_transfer(message=Message(session.delivery_properties(routing_key="q"), "acquire me"))
session.message_subscribe(queue = "q", destination = "a", acquire_mode = 1)