summaryrefslogtreecommitdiff
path: root/qpid/tests/src
diff options
context:
space:
mode:
authorGordon Sim <gsim@apache.org>2012-04-23 20:58:00 +0000
committerGordon Sim <gsim@apache.org>2012-04-23 20:58:00 +0000
commit53a875d0fa717f5a58cf76bdc2faef638721d401 (patch)
tree18dd73a121eb97b20ccb4f26b065626ad4e1a095 /qpid/tests/src
parent813582c0cf24fda9481d0a666be41a9e78b27452 (diff)
downloadqpid-python-53a875d0fa717f5a58cf76bdc2faef638721d401.tar.gz
QPID-3970: Check alternate exchange actually exists before proceeding with reroute request
git-svn-id: https://svn.apache.org/repos/asf/qpid/trunk@1329438 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'qpid/tests/src')
-rw-r--r--qpid/tests/src/py/qpid_tests/broker_0_10/management.py24
1 files changed, 24 insertions, 0 deletions
diff --git a/qpid/tests/src/py/qpid_tests/broker_0_10/management.py b/qpid/tests/src/py/qpid_tests/broker_0_10/management.py
index a17a945e29..2dd2291b2e 100644
--- a/qpid/tests/src/py/qpid_tests/broker_0_10/management.py
+++ b/qpid/tests/src/py/qpid_tests/broker_0_10/management.py
@@ -385,6 +385,30 @@ class ManagementTest (TestBase010):
# Cleanup
for e in ["A", "B"]: session.exchange_delete(exchange=e)
+ def test_reroute_invalid_alt_exchange(self):
+ """
+ Test that an error is returned for an attempt to reroute to
+ alternate exchange on a queue for which no such exchange has
+ been defined.
+ """
+ self.startQmf()
+ session = self.session
+ # create queue with no alt-exchange, and send a message to it
+ session.queue_declare(queue="q", exclusive=True, auto_delete=True)
+ props = session.delivery_properties(routing_key="q")
+ session.message_transfer(message=Message(props, "don't reroute me!"))
+
+ # attempt to reroute the message to alt-exchange
+ q = self.qmf.getObjects(_class="queue", name="q")[0]
+ result = q.reroute(1, True, "", {})
+ # verify the attempt fails...
+ self.assertEqual(result.status, 4) #invalid parameter
+
+ # ...and message is still on the queue
+ self.subscribe(destination="d", queue="q")
+ self.assertEqual("don't reroute me!", session.incoming("d").get(timeout=1).body)
+
+
def test_methods_async (self):
"""
"""