[rhmessaging-commits] rhmessaging commits: r2316 - mgmt/trunk/cumin/python/cumin.
rhmessaging-commits at lists.jboss.org
rhmessaging-commits at lists.jboss.org
Fri Aug 15 15:17:19 EDT 2008
Author: eallen
Date: 2008-08-15 15:17:19 -0400 (Fri, 15 Aug 2008)
New Revision: 2316
Modified:
mgmt/trunk/cumin/python/cumin/test.py
Log:
Added tests for:
- Create new Broker Link
- Create Route
- Remove Route
- Remove Broker Link
- Binding to Direct exchange
- Binding to Topic exchange
- Binding to Fanout exchange
- Binding to Headers exchange
- Remove queue binding
Modified: mgmt/trunk/cumin/python/cumin/test.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/test.py 2008-08-15 14:48:59 UTC (rev 2315)
+++ mgmt/trunk/cumin/python/cumin/test.py 2008-08-15 19:17:19 UTC (rev 2316)
@@ -13,7 +13,6 @@
from util import *
import time
-
class TestBroker(Thread):
def __init__(self, path, port):
super(TestBroker, self).__init__()
@@ -251,6 +250,136 @@
BrokerGroupTest(env, self)
BrokerRegistrationTest(env, self)
+class BrokerLinkTest(Test):
+ def __init__(self, env, parent):
+ super(BrokerLinkTest, self).__init__(env, parent)
+
+ RouteTest(env, self)
+ self.LinkRemove(env, self)
+
+ def do_run(self, session):
+ p, s = self.env.page_and_session()
+
+ reg = self.env.broker_registration
+ form = p.show_main(s).show_broker(s, reg).show_broker_link_add(s)
+
+ host = dict()
+ host["name"] = "localhost"
+ host["port"] = "9991"
+ host["password"] = ""
+ host["username"] = ""
+ form.host.set(s, host)
+ form.durable.set(s, "transient")
+
+ form.submit(s)
+ p.process(s)
+
+ self.env.check_redirect(p, s)
+
+ vhost = self.env.vhost
+
+ def predicate():
+ for item in Link.selectBy(vhost=vhost, host="localhost", port=9991):
+ return True
+
+ wait(predicate)
+
+ try:
+ self.env.link = Link.selectBy(vhost=vhost, host="localhost", port=9991)[0]
+ except IndexError:
+ raise Exception("Link not created")
+
+ self.run_children(session)
+
+ class LinkRemove(Test):
+ def do_run(self, session):
+ p, s = self.env.page_and_session()
+
+ reg = self.env.broker_registration
+ form = p.show_main(s).show_broker(s, reg).show_broker_links_close(s)
+
+ ids = [self.env.link.id]
+ form.ids.set(s, ids)
+
+ form.submit(s)
+ p.process(s)
+
+ self.env.check_redirect(p, s)
+
+ def predicate():
+ return self.env.link.deletionTime
+
+ wait(predicate)
+
+ # if it timed out, raise an exception
+ if not self.env.link.deletionTime:
+ raise Exception("Link not removed")
+
+class RouteTest(Test):
+ def __init__(self, env, parent):
+ super(RouteTest, self).__init__(env, parent)
+
+ self.Add(env, self)
+ self.Remove(env, self)
+
+ def do_run(self, session):
+ self.run_children(session)
+
+ class Add(Test):
+ def do_run(self, session):
+ p, s = self.env.page_and_session()
+
+ reg = self.env.broker_registration
+ form = p.show_main(s).show_broker(s, reg).show_peer(s, self.env.link).show_bridge_add(s)
+
+ vhost = self.env.vhost
+ exchange = Exchange.selectBy(vhost=vhost, name=self.env.broker_exchange.name)[0]
+ form.exchange.set(s, str(exchange.id))
+
+ form.key.set(s, "cumin.key")
+ form.tag.set(s, "cumin.tag")
+ form.excludes.set(s, "cumin.tag")
+
+ form.submit(s)
+ p.process(s)
+
+ self.env.check_redirect(p, s)
+
+ def predicate():
+ for item in Bridge.selectBy(link=self.env.link, dest=self.env.broker_exchange.name, key="cumin.key"):
+ return True
+
+ wait(predicate)
+
+ try:
+ self.env.bridge = Bridge.selectBy(link=self.env.link, dest=self.env.broker_exchange.name, key="cumin.key")[0]
+ except IndexError:
+ raise Exception("Route not created")
+
+ class Remove(Test):
+ def do_run(self, session):
+ p, s = self.env.page_and_session()
+
+ reg = self.env.broker_registration
+ form = p.show_main(s).show_broker(s, reg).show_peer(s, self.env.link).show_routes_close(s)
+
+ ids = [self.env.bridge.id]
+ form.ids.set(s, ids)
+
+ form.submit(s)
+ p.process(s)
+
+ self.env.check_redirect(p, s)
+
+ def predicate():
+ return self.env.bridge.deletionTime
+
+ wait(predicate)
+
+ # if it timed out, raise an exception
+ if not self.env.bridge.deletionTime:
+ raise Exception("Route not removed")
+
class BrokerRegistrationTest(Test):
def __init__(self, env, parent):
super(BrokerRegistrationTest, self).__init__(env, parent)
@@ -381,6 +510,7 @@
QueueTest(env, self)
ExchangeTest(env, self)
ConnectionTest(env, self)
+ BrokerLinkTest(env, self)
def do_run(self, session):
def predicate():
@@ -397,113 +527,249 @@
self.run_children(session)
-class QueueTest(Test):
+class BindQueueTest(Test):
def __init__(self, env, parent):
- super(QueueTest, self).__init__(env, parent)
+ super(BindQueueTest, self).__init__(env, parent)
- self.Add(env, self)
- self.Bind(env, self)
- self.Remove(env, self)
-
- self.queue = None
+ self.BindDirect(env, self)
+ self.BindTopic(env, self)
+ self.BindFanout(env, self)
+ self.BindHeaders(env, self)
+ self.RemoveBindDirect(env, self)
- def set_queue(self, queue):
- self.queue = queue
+ def do_run(self, session):
+ self.run_children(session)
- def get_queue(self):
- return self.queue
-
- def do_run(self, session):
- vhost = self.env.vhost
- name = self.env.broker_queue.name
+ class BindDirect(Test):
+ def do_run(self, session):
+ p, s = self.env.page_and_session()
- def predicate():
- for item in Queue.selectBy(vhost=vhost, name=name):
- return True
+ reg = self.env.broker_registration
+ form = p.show_main(s).show_broker(s, reg)
+ form = form.show_queue(s, self.env.queue)
+ form = form.show_queue_binding_add(s)
+ binding = dict()
+ binding["test"] = {}
+ direct = binding["test"]
+ direct["name"] = "amq.direct"
+ direct["type"] = "direct"
+ form.bindings.dict_param.set(s, binding)
+
+ form.submit(s)
+ p.process(s)
- wait(predicate)
+ self.env.check_redirect(p, s)
- try:
- self.env.queue = Queue.selectBy(vhost=vhost, name=name)[0]
- except IndexError:
- raise Exception("Queue not found")
+ def predicate():
+ for item in Binding.selectBy(queue=self.env.queue, bindingKey=self.env.queue.name):
+ return True
- self.run_children(session)
+ wait(predicate)
- class Add(Test):
+ # if it timed out, raise an exception
+ try:
+ self.env.binding_direct = Binding.selectBy(queue=self.env.queue, bindingKey=self.env.queue.name)[0]
+ except IndexError:
+ raise Exception("Direct Binding not added")
+
+ class BindTopic(Test):
def do_run(self, session):
- name = "cumin.queue.%s" % session.id
p, s = self.env.page_and_session()
reg = self.env.broker_registration
- form = p.show_main(s).show_broker(s, reg).show_queue_add(s)
- form.namef.set(s, name)
- form.durable.set(s, "durable")
- form.autodelete.set(s, "preserve")
-
+ form = p.show_main(s).show_broker(s, reg)
+ form = form.show_queue(s, self.env.queue)
+ form = form.show_queue_binding_add(s)
+ binding = dict()
+ binding["test"] = {}
+ direct = binding["test"]
+ direct["name"] = "amq.topic"
+ direct["type"] = "topic"
+ direct["key"] = "topic.key"
+ form.bindings.dict_param.set(s, binding)
+
form.submit(s)
p.process(s)
self.env.check_redirect(p, s)
- vhost = self.env.vhost
-
- # wait for newly created queue to show up
def predicate():
- for item in Queue.selectBy(vhost=vhost, name=name):
+ for item in Binding.selectBy(queue=self.env.queue, bindingKey="topic.key"):
return True
wait(predicate)
# if it timed out, raise an exception
try:
- queue = Queue.selectBy(vhost=vhost, name=name)[0]
- self.parent.set_queue(queue)
+ Binding.selectBy(queue=self.env.queue, bindingKey="topic.key")[0]
except IndexError:
- raise Exception("Queue %s not added" % name)
- self.parent.set_queue(None)
+ raise Exception("Topic Binding not added")
- class Bind(Test):
+ class BindFanout(Test):
def do_run(self, session):
- name = "cumin.queue.%s" % session.id
- queue = self.parent.get_queue()
- if not queue:
- raise Exception("Bind skipped because Queue %s not added" % name)
+ p, s = self.env.page_and_session()
- # try to bind to it
+ reg = self.env.broker_registration
+ form = p.show_main(s).show_broker(s, reg)
+ form = form.show_queue(s, self.env.queue)
+ form = form.show_queue_binding_add(s)
+ binding = dict()
+ binding["test"] = {}
+ direct = binding["test"]
+ direct["name"] = "amq.fanout"
+ direct["type"] = "fanout"
+ form.bindings.dict_param.set(s, binding)
+
+ form.submit(s)
+ p.process(s)
+
+ self.env.check_redirect(p, s)
+
+ def predicate():
+ for item in Binding.selectBy(queue=self.env.queue):
+ if item.exchange.name == "amq.fanout":
+ return True
+
+ wait(predicate)
+
+ for item in Binding.selectBy(queue=self.env.queue):
+ if item.exchange.name == "amq.fanout":
+ return
+
+ raise Exception("Fanout Binding not added")
+
+ class BindHeaders(Test):
+ def do_run(self, session):
p, s = self.env.page_and_session()
reg = self.env.broker_registration
form = p.show_main(s).show_broker(s, reg)
- form = form.show_queue(s, queue)
+ form = form.show_queue(s, self.env.queue)
form = form.show_queue_binding_add(s)
binding = dict()
binding["test"] = {}
direct = binding["test"]
- direct["name"] = "amq.direct"
- direct["type"] = "direct"
+ direct["name"] = "amq.match"
+ direct["type"] = "headers"
+ direct["key"] = "headers.key"
+ direct["x-match"] = "all"
+ direct["mkey.1"] = "key1"
+ direct["mkey.1.nv"] = "name.value.1"
form.bindings.dict_param.set(s, binding)
form.submit(s)
+ p.process(s)
+ self.env.check_redirect(p, s)
+
+ def predicate():
+ for item in Binding.selectBy(queue=self.env.queue, bindingKey="headers.key"):
+ return True
+
+ wait(predicate)
+
+ # if it timed out, raise an exception
+ try:
+ Binding.selectBy(queue=self.env.queue, bindingKey="headers.key")[0]
+ except IndexError:
+ raise Exception("Headers Binding not added")
+
+ class RemoveBindDirect(Test):
+ def do_run(self, session):
+ p, s = self.env.page_and_session()
+
+ reg = self.env.broker_registration
+ form = p.show_main(s).show_broker(s, reg)
+ form = form.show_queue_bindings_remove(s, self.env.queue)
+
+ ids = [self.env.binding_direct.id]
+ form.ids.set(s, ids)
+
+ form.submit(s)
p.process(s)
self.env.check_redirect(p, s)
+ def predicate():
+ return self.env.binding_direct.deletionTime
+
+ wait(predicate)
+
+ # if it timed out, raise an exception
+ if not self.env.binding_direct.deletionTime:
+ raise Exception("Direct Binding not removed")
+
+class AddQueueTest(Test):
+ def __init__(self, env, parent):
+ super(AddQueueTest, self).__init__(env, parent)
+
+ BindQueueTest(env, self)
+
+ def do_run(self, session):
+ name = "cumin.queue.%s" % session.id
+ p, s = self.env.page_and_session()
+
+ reg = self.env.broker_registration
+ form = p.show_main(s).show_broker(s, reg).show_queue_add(s)
+ form.namef.set(s, name)
+ form.durable.set(s, "durable")
+ form.autodelete.set(s, "preserve")
+
+ form.submit(s)
+ p.process(s)
+
+ self.env.check_redirect(p, s)
+
+ vhost = self.env.vhost
+
+ # wait for newly created queue to show up
+ def predicate():
+ for item in Queue.selectBy(vhost=vhost, name=name):
+ return True
+
+ wait(predicate)
+
+ # if it timed out, raise an exception
+ try:
+ self.env.queue = Queue.selectBy(vhost=vhost, name=name)[0]
+ except IndexError:
+ raise Exception("Queue %s not added" % name)
+
+ self.run_children(session)
+
+
+class QueueTest(Test):
+ def __init__(self, env, parent):
+ super(QueueTest, self).__init__(env, parent)
+
+ AddQueueTest(env, self)
+ self.Remove(env, self)
+
+ def do_run(self, session):
+ vhost = self.env.vhost
+ name = self.env.broker_queue.name
+
+ def predicate():
+ for item in Queue.selectBy(vhost=vhost, name=name):
+ return True
+
+ wait(predicate)
+
+ try:
+ self.env.broker_queue = Queue.selectBy(vhost=vhost, name=name)[0]
+ except IndexError:
+ raise Exception("Queue not found")
+
+ self.run_children(session)
+
class Remove(Test):
def do_run(self, session):
- name = "cumin.queue.%s" % session.id
- queue = self.parent.get_queue()
- if not queue:
- raise Exception("Remove skipped because Queue %s not added" % name)
-
- # try to delete it
p, s = self.env.page_and_session()
reg = self.env.broker_registration
form = p.show_main(s).show_broker(s, reg).show_queues_remove(s)
- ids = [queue.id]
+ ids = [self.env.queue.id]
form.ids.set(s, ids)
form.submit(s)
@@ -513,22 +779,20 @@
# wait for newly created queue to get marked as deleted
def predicate():
- return queue.deletionTime
+ return self.env.queue.deletionTime
wait(predicate)
# if it timed out, raise an exception
- if not queue.deletionTime:
- raise Exception("Queue %s not removed" % name)
+ if not self.env.queue.deletionTime:
+ raise Exception("Queue not removed")
class ExchangeTest(Test):
def __init__(self, env, parent):
super(ExchangeTest, self).__init__(env, parent)
self.Add(env, self)
- self.Added(env, self)
self.Remove(env, self)
- self.Removed(env, self)
def do_run(self, session):
vhost = self.env.vhost
@@ -556,11 +820,7 @@
self.env.check_redirect(p, s)
- class Added(Test):
- def do_run(self, session):
vhost = self.env.vhost
- name = "cumin.exchange.%s" % session.id
-
# wait for newly created exchange to show up
def predicate():
for item in Exchange.selectBy(vhost=vhost, name=name):
@@ -590,8 +850,6 @@
self.env.check_redirect(p, s)
- class Removed(Test):
- def do_run(self, session):
name = "cumin.exchange.%s" % session.id
# wait for newly created exchange to get marked as deleted
@@ -603,7 +861,6 @@
if not self.env.added_exchange.deletionTime:
raise Exception("Exchange %s not removed" % name)
-
class ConnectionTest(Test):
def do_run(self, session):
raise Exception("Not implemented")
More information about the rhmessaging-commits
mailing list