summaryrefslogtreecommitdiff
path: root/python/tests_0-10_preview
diff options
context:
space:
mode:
Diffstat (limited to 'python/tests_0-10_preview')
-rw-r--r--python/tests_0-10_preview/__init__.py1
-rw-r--r--python/tests_0-10_preview/management.py89
2 files changed, 90 insertions, 0 deletions
diff --git a/python/tests_0-10_preview/__init__.py b/python/tests_0-10_preview/__init__.py
index fe96d9e122..f0acf9c632 100644
--- a/python/tests_0-10_preview/__init__.py
+++ b/python/tests_0-10_preview/__init__.py
@@ -25,6 +25,7 @@ from dtx import *
from example import *
from exchange import *
from execution import *
+from management import *
from message import *
from query import *
from queue import *
diff --git a/python/tests_0-10_preview/management.py b/python/tests_0-10_preview/management.py
new file mode 100644
index 0000000000..de6161ae96
--- /dev/null
+++ b/python/tests_0-10_preview/management.py
@@ -0,0 +1,89 @@
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+
+from qpid.datatypes import Message, RangedSet
+from qpid.testlib import TestBase
+from qpid.management import managementChannel, managementClient
+
+class ManagementTest (TestBase):
+ """
+ Tests for the management hooks
+ """
+
+ def test_broker_connectivity (self):
+ """
+ Call the "echo" method on the broker to verify it is alive and talking.
+ """
+ channel = self.client.channel(2)
+
+ mc = managementClient (channel.spec)
+ mch = mc.addChannel (channel)
+
+ mc.syncWaitForStable (mch)
+ brokers = mc.syncGetObjects (mch, "broker")
+ self.assertEqual (len (brokers), 1)
+ broker = brokers[0]
+ args = {}
+ body = "Echo Message Body"
+ args["body"] = body
+
+ for seq in range (1, 5):
+ args["sequence"] = seq
+ res = mc.syncCallMethod (mch, broker.id, broker.classKey, "echo", args)
+ self.assertEqual (res.status, 0)
+ self.assertEqual (res.statusText, "OK")
+ self.assertEqual (res.sequence, seq)
+ self.assertEqual (res.body, body)
+
+ def test_system_object (self):
+ channel = self.client.channel(2)
+
+ mc = managementClient (channel.spec)
+ mch = mc.addChannel (channel)
+
+ mc.syncWaitForStable (mch)
+ systems = mc.syncGetObjects (mch, "system")
+ self.assertEqual (len (systems), 1)
+
+ def test_standard_exchanges (self):
+ channel = self.client.channel(2)
+
+ mc = managementClient (channel.spec)
+ mch = mc.addChannel (channel)
+
+ mc.syncWaitForStable (mch)
+ exchanges = mc.syncGetObjects (mch, "exchange")
+ exchange = self.findExchange (exchanges, "")
+ self.assertEqual (exchange.type, "direct")
+ exchange = self.findExchange (exchanges, "amq.direct")
+ self.assertEqual (exchange.type, "direct")
+ exchange = self.findExchange (exchanges, "amq.topic")
+ self.assertEqual (exchange.type, "topic")
+ exchange = self.findExchange (exchanges, "amq.fanout")
+ self.assertEqual (exchange.type, "fanout")
+ exchange = self.findExchange (exchanges, "amq.match")
+ self.assertEqual (exchange.type, "headers")
+ exchange = self.findExchange (exchanges, "qpid.management")
+ self.assertEqual (exchange.type, "topic")
+
+ def findExchange (self, exchanges, name):
+ for exchange in exchanges:
+ if exchange.name == name:
+ return exchange
+ return None