diff options
Diffstat (limited to 'python/tests_0-10_preview')
| -rw-r--r-- | python/tests_0-10_preview/__init__.py | 1 | ||||
| -rw-r--r-- | python/tests_0-10_preview/management.py | 89 |
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 |
