summaryrefslogtreecommitdiff
path: root/python/qpid/tests/messaging
diff options
context:
space:
mode:
authorRafael H. Schloming <rhs@apache.org>2010-06-24 17:34:34 +0000
committerRafael H. Schloming <rhs@apache.org>2010-06-24 17:34:34 +0000
commit8ebeb0ed934d9baae9ea72f9ad083605ecda315a (patch)
tree653c6786ab2935015e3bdb89233765996fc55d66 /python/qpid/tests/messaging
parentc54e5f2960f37bf059ee9b1b0560b9f9706e67e0 (diff)
downloadqpid-python-8ebeb0ed934d9baae9ea72f9ad083605ecda315a.tar.gz
added full support for unreliable, at-least-once, and at-most-once reliability options
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk/qpid@957644 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'python/qpid/tests/messaging')
-rw-r--r--python/qpid/tests/messaging/endpoints.py27
1 files changed, 27 insertions, 0 deletions
diff --git a/python/qpid/tests/messaging/endpoints.py b/python/qpid/tests/messaging/endpoints.py
index 3133fe73cd..dce8d9b5ff 100644
--- a/python/qpid/tests/messaging/endpoints.py
+++ b/python/qpid/tests/messaging/endpoints.py
@@ -685,6 +685,33 @@ class ReceiverTests(Base):
# XXX: need testUnsettled()
+ def unreliabilityTest(self, mode="unreliable"):
+ msgs = [self.message("testUnreliable", i) for i in range(3)]
+ snd = self.ssn.sender("test-unreliability-queue; {create: sender, delete: receiver}")
+ rcv = self.ssn.receiver(snd.target)
+ for m in msgs:
+ snd.send(m)
+
+ # close without ack on reliable receiver, messages should be requeued
+ ssn = self.conn.session()
+ rrcv = ssn.receiver("test-unreliability-queue")
+ self.drain(rrcv, expected=msgs)
+ ssn.close()
+
+ # close without ack on unreliable receiver, messages should not be requeued
+ ssn = self.conn.session()
+ urcv = ssn.receiver("test-unreliability-queue; {link: {reliability: %s}}" % mode)
+ self.drain(urcv, expected=msgs, redelivered=True)
+ ssn.close()
+
+ self.assertEmpty(rcv)
+
+ def testUnreliable(self):
+ self.unreliabilityTest(mode="unreliable")
+
+ def testAtMostOnce(self):
+ self.unreliabilityTest(mode="at-most-once")
+
class AddressTests(Base):
def setup_connection(self):