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