You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@qpid.apache.org by tr...@apache.org on 2008/09/24 19:26:59 UTC
svn commit: r698662 - in /incubator/qpid/trunk/qpid/python: qpid/testlib.py
tests_0-10/management.py
Author: tross
Date: Wed Sep 24 10:26:59 2008
New Revision: 698662
URL: http://svn.apache.org/viewvc?rev=698662&view=rev
Log:
QPID-1291 - William Henry's python test (plus some test harness updates)
Modified:
incubator/qpid/trunk/qpid/python/qpid/testlib.py
incubator/qpid/trunk/qpid/python/tests_0-10/management.py
Modified: incubator/qpid/trunk/qpid/python/qpid/testlib.py
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/qpid/testlib.py?rev=698662&r1=698661&r2=698662&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/qpid/testlib.py (original)
+++ incubator/qpid/trunk/qpid/python/qpid/testlib.py Wed Sep 24 10:26:59 2008
@@ -22,7 +22,7 @@
#
import sys, re, unittest, os, random, logging, traceback
-import qpid.client, qpid.spec
+import qpid.client, qpid.spec, qpid.qmfconsole
import Queue
from fnmatch import fnmatch
from getopt import getopt, GetoptError
@@ -357,6 +357,11 @@
username=testrunner.user, password=testrunner.password)
self.conn.start(timeout=10)
self.session = self.conn.session("test-session", timeout=10)
+ self.qmf = None
+
+ def startQmf(self):
+ self.qmf = qpid.qmfconsole.Session()
+ self.qmf_broker = self.qmf.addBroker("%s:%d" % (testrunner.host, testrunner.port))
def connect(self, host=None, port=None):
spec = testrunner.spec
@@ -367,6 +372,8 @@
def tearDown(self):
if not self.session.error(): self.session.close(timeout=10)
self.conn.close(timeout=10)
+ if self.qmf:
+ self.qmf.delBroker(self.qmf_broker)
def subscribe(self, session=None, **keys):
session = session or self.session
Modified: incubator/qpid/trunk/qpid/python/tests_0-10/management.py
URL: http://svn.apache.org/viewvc/incubator/qpid/trunk/qpid/python/tests_0-10/management.py?rev=698662&r1=698661&r2=698662&view=diff
==============================================================================
--- incubator/qpid/trunk/qpid/python/tests_0-10/management.py (original)
+++ incubator/qpid/trunk/qpid/python/tests_0-10/management.py Wed Sep 24 10:26:59 2008
@@ -20,13 +20,14 @@
from qpid.datatypes import Message, RangedSet
from qpid.testlib import TestBase010
from qpid.management import managementChannel, managementClient
+from qpid import qmfconsole
class ManagementTest (TestBase010):
"""
Tests for the management hooks
"""
- def test_broker_connectivity (self):
+ def test_broker_connectivity_oldAPI (self):
"""
Call the "echo" method on the broker to verify it is alive and talking.
"""
@@ -52,6 +53,25 @@
self.assertEqual (res.body, body)
mc.removeChannel (mch)
+ def test_broker_connectivity (self):
+ """
+ Call the "echo" method on the broker to verify it is alive and talking.
+ """
+ session = self.session
+ self.startQmf()
+
+ brokers = self.qmf.getObjects(name="broker")
+ self.assertEqual (len(brokers), 1)
+ broker = brokers[0]
+
+ body = "Echo Message Body"
+ for seq in range (1, 10):
+ res = broker.echo(seq, body)
+ self.assertEqual (res.status, 0)
+ self.assertEqual (res.text, "OK")
+ self.assertEqual (res.sequence, seq)
+ self.assertEqual (res.body, body)
+
def test_system_object (self):
session = self.session
@@ -105,3 +125,80 @@
if exchange.name == name:
return exchange
return None
+
+ def test_move_queued_messages(self):
+ """
+ Test ability to move messages from the head of one queue to another.
+ Need to test moveing all and N messages.
+ """
+ self.startQmf()
+ session = self.session
+ "Set up source queue"
+ session.queue_declare(queue="src-queue", exclusive=True, auto_delete=True)
+ session.exchange_bind(queue="src-queue", exchange="amq.direct", binding_key="routing_key")
+ move_part = "Move Messages "
+ twenty = range(1,21)
+ props = session.delivery_properties(routing_key="routing_key")
+ for count in twenty:
+ body = move_part + 'count'
+ src_msg = Message(props, body)
+ session.message_transfer(destination="amq.direct", message=src_msg)
+
+ "Set up destination queue"
+ session.queue_declare(queue="dest-queue", exclusive=True, auto_delete=True)
+ session.exchange_bind(queue="dest-queue", exchange="amq.direct")
+
+ "Get a management agent session interface"
+ #qmf_sess = qmfconsole.Session()
+ #broker = qmf_sess.addBroker("%s:%d" % (testrunner.host, testrunner.port))
+ queues = self.qmf.getObjects(name="queue")
+
+ "Move 10 messages from src-queue to dest-queue"
+ result = self.qmf.getObjects(name="broker")[0].queueMoveMessages("src-queue", "dest-queue", 10)
+ self.assertEqual (result.status, 0)
+
+ queues = self.qmf.getObjects(name="queue")
+ for q in queues:
+ if q.name == "src-queue":
+ sq = q
+ elif q.name == "dest-queue":
+ dq = q
+
+ self.assertEqual (sq.msgDepth,10)
+ self.assertEqual (dq.msgDepth,10)
+
+ "Move all remaining messages to destination"
+ result = self.qmf.getObjects(name="broker")[0].queueMoveMessages("src-queue", "dest-queue", 0)
+ self.assertEqual (result.status,0)
+
+ queues = self.qmf.getObjects(name="queue")
+ for q in queues:
+ if q.name == "src-queue":
+ sq = q
+ elif q.name == "dest-queue":
+ dq = q
+ self.assertEqual (sq.msgDepth,0)
+ self.assertEqual (dq.msgDepth,20)
+
+ "Use a bad source queue name"
+ result = self.qmf.getObjects(name="broker")[0].queueMoveMessages("bad-src-queue", "dest-queue", 0)
+ self.assertEqual (result.status,4)
+
+ "Use a bad destination queue name"
+ result = self.qmf.getObjects(name="broker")[0].queueMoveMessages("src-queue", "bad-dest-queue", 0)
+ self.assertEqual (result.status,4)
+
+ " Use a large qty (40) to move from dest-queue back to "
+ " src-queue- should move all "
+ result = self.qmf.getObjects(name="broker")[0].queueMoveMessages("dest-queue", "src-queue", 40)
+ self.assertEqual (result.status,0)
+
+ queues = self.qmf.getObjects(name="queue")
+ for q in queues:
+ if q.name == "src-queue":
+ sq = q
+ elif q.name == "dest-queue":
+ dq = q
+ self.assertEqual (sq.msgDepth,20)
+ self.assertEqual (dq.msgDepth,0)
+