You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by ac...@apache.org on 2018/03/27 18:47:39 UTC
qpid-dispatch git commit: DISPATCH-947 - Modified
test_10_propagated_disposition, no messenger
Repository: qpid-dispatch
Updated Branches:
refs/heads/master 0f42beca4 -> 95c374139
DISPATCH-947 - Modified test_10_propagated_disposition, no messenger
system_tests_two_routers.TwoRouterTest.test_10_propagated_disposition
Project: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/repo
Commit: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/commit/95c37413
Tree: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/tree/95c37413
Diff: http://git-wip-us.apache.org/repos/asf/qpid-dispatch/diff/95c37413
Branch: refs/heads/master
Commit: 95c3741398438eb40cf0a742bc2e46b45a34e966
Parents: 0f42bec
Author: Alan Conway <ac...@redhat.com>
Authored: Tue Mar 27 14:46:13 2018 -0400
Committer: Alan Conway <ac...@redhat.com>
Committed: Tue Mar 27 14:47:10 2018 -0400
----------------------------------------------------------------------
tests/system_tests_two_routers.py | 106 ++++++++++++++-------------------
1 file changed, 46 insertions(+), 60 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/qpid-dispatch/blob/95c37413/tests/system_tests_two_routers.py
----------------------------------------------------------------------
diff --git a/tests/system_tests_two_routers.py b/tests/system_tests_two_routers.py
index 2854c72..637bd7e 100644
--- a/tests/system_tests_two_routers.py
+++ b/tests/system_tests_two_routers.py
@@ -20,7 +20,7 @@
from time import sleep
import unittest2 as unittest
import logging
-from proton import Message, PENDING, ACCEPTED, REJECTED, Timeout
+from proton import Message, PENDING, ACCEPTED, REJECTED, Timeout, Delivery
from system_test import TestCase, Qdrouterd, main_module, TIMEOUT
from proton.handlers import MessagingHandler
from proton.reactor import Container
@@ -173,65 +173,8 @@ class TwoRouterTest(TestCase):
self.assertEqual(None, test.error)
def test_10_propagated_disposition(self):
- addr = "amqp:/unsettled/2"
- M1 = self.messenger()
- M2 = self.messenger()
-
- M1.route("amqp:/*", self.routers[0].addresses[0]+"/$1")
- M2.route("amqp:/*", self.routers[1].addresses[0]+"/$1")
-
- M1.outgoing_window = 5
- M2.incoming_window = 5
-
- M1.start()
- M2.start()
- M2.subscribe(addr)
- self.routers[0].wait_address("unsettled/2", 0, 1)
-
- tm = Message()
- rm = Message()
-
- tm.address = addr
- tm.body = {'number': 0}
-
- ##
- ## Test ACCEPT
- ##
- tx_tracker = M1.put(tm)
- M1.send(0)
- M2.recv(1)
- rx_tracker = M2.get(rm)
- self.assertEqual(0, rm.body['number'])
- self.assertEqual(PENDING, M1.status(tx_tracker))
-
- M2.accept(rx_tracker)
- M2.settle(rx_tracker)
-
- M2.flush()
- M1.flush()
-
- self.assertEqual(ACCEPTED, M1.status(tx_tracker))
-
- ##
- ## Test REJECT
- ##
- tx_tracker = M1.put(tm)
- M1.send(0)
- M2.recv(1)
- rx_tracker = M2.get(rm)
- self.assertEqual(0, rm.body['number'])
- self.assertEqual(PENDING, M1.status(tx_tracker))
-
- M2.reject(rx_tracker)
- M2.settle(rx_tracker)
-
- M2.flush()
- M1.flush()
-
- self.assertEqual(REJECTED, M1.status(tx_tracker))
-
- M1.stop()
- M2.stop()
+ test = PropagatedDisposition(self, self.routers[0].addresses[0], self.routers[1].addresses[0])
+ test.run()
def test_11_three_ack(self):
addr = "amqp:/three_ack/1"
@@ -1288,5 +1231,48 @@ class SemanticsBalanced(MessagingHandler):
Container(self).run()
+class PropagatedDisposition(MessagingHandler):
+ def __init__(self, test, address1, address2):
+ super(PropagatedDisposition, self).__init__(auto_accept=False)
+ self.addrs = [address1, address2]
+ self.settled = []
+ self.test = test
+
+ def on_start(self, event):
+ connections = [event.container.connect(a) for a in self.addrs]
+ addr = "unsettled/2"
+ self.sender = event.container.create_sender(connections[0], addr)
+ self.receiver = event.container.create_receiver(connections[1], addr)
+ self.receiver.flow(2)
+ self.trackers = {}
+ for b in ['accept', 'reject']:
+ self.trackers[self.sender.send(Message(body=b))] = b
+
+ def on_message(self, event):
+ if event.message.body == 'accept':
+ event.delivery.update(Delivery.ACCEPTED)
+ event.delivery.settle()
+ elif event.message.body == 'reject':
+ event.delivery.update(Delivery.REJECTED)
+ event.delivery.settle()
+ event.connection.close()
+
+ def on_accepted(self, event):
+ self.test.assertEqual(Delivery.ACCEPTED, event.delivery.remote_state)
+ self.test.assertEqual('accept', self.trackers[event.delivery])
+ self.settled.append('accept')
+
+ def on_rejected(self, event):
+ self.test.assertEqual(Delivery.REJECTED, event.delivery.remote_state)
+ self.test.assertEqual('reject', self.trackers[event.delivery])
+ self.settled.append('reject')
+ event.connection.close()
+
+ def run(self):
+ Container(self).run()
+ self.test.assertEqual(['accept', 'reject'], self.settled)
+
+
+
if __name__ == '__main__':
unittest.main(main_module())
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@qpid.apache.org
For additional commands, e-mail: commits-help@qpid.apache.org