summaryrefslogtreecommitdiff
path: root/python/qpid/tests
diff options
context:
space:
mode:
Diffstat (limited to 'python/qpid/tests')
-rw-r--r--python/qpid/tests/messaging.py45
1 files changed, 29 insertions, 16 deletions
diff --git a/python/qpid/tests/messaging.py b/python/qpid/tests/messaging.py
index 13638638fb..db9e15a01a 100644
--- a/python/qpid/tests/messaging.py
+++ b/python/qpid/tests/messaging.py
@@ -228,6 +228,35 @@ class SessionTests(Base):
assert msg.content == content
self.ssn.acknowledge(msg)
+ def testNextReceiver(self):
+ ADDR = 'test-next-rcv-queue {create: always}'
+ rcv1 = self.ssn.receiver(ADDR, capacity=UNLIMITED)
+ rcv2 = self.ssn.receiver(ADDR, capacity=UNLIMITED)
+ rcv3 = self.ssn.receiver(ADDR, capacity=UNLIMITED)
+
+ # XXX: this won't work if it is before the receiver creation
+ self.ssn.start()
+
+ snd = self.ssn.sender(ADDR)
+
+ msgs = []
+ for i in range(10):
+ content = self.content("testNextReceiver", i)
+ snd.send(content)
+ msgs.append(content)
+
+ fetched = []
+ try:
+ while True:
+ rcv = self.ssn.next_receiver(timeout=self.delay())
+ assert rcv in (rcv1, rcv2, rcv3)
+ assert rcv.pending() > 0
+ fetched.append(rcv.fetch().content)
+ except Empty:
+ pass
+ assert msgs == fetched, "expecting %s, got %s" % (msgs, fetched)
+ self.ssn.acknowledge()
+
def testStart(self):
START_Q = 'test-start-queue {create: always}'
rcv = self.ssn.receiver(START_Q)
@@ -437,22 +466,6 @@ class ReceiverTests(Base):
self.snd.send(content)
return content
- def testListen(self):
- msgs = Queue()
- def listener(m):
- msgs.put(m)
- self.ssn.acknowledge(m)
- self.rcv.listen(listener)
- content = self.send("testListen")
- try:
- msg = msgs.get(timeout=self.delay())
- assert False, "did not expect message: %s" % msg
- except QueueEmpty:
- pass
- self.rcv.start()
- msg = msgs.get(timeout=self.delay())
- assert msg.content == content
-
def testFetch(self):
try:
msg = self.rcv.fetch(0)