[rhmessaging-commits] rhmessaging commits: r2271 - mgmt/trunk/cumin/python/cumin.

rhmessaging-commits at lists.jboss.org rhmessaging-commits at lists.jboss.org
Fri Aug 8 16:44:01 EDT 2008


Author: eallen
Date: 2008-08-08 16:44:01 -0400 (Fri, 08 Aug 2008)
New Revision: 2271

Modified:
   mgmt/trunk/cumin/python/cumin/test.py
Log:
Added Queue: Add, Bind, and Remove tests

Modified: mgmt/trunk/cumin/python/cumin/test.py
===================================================================
--- mgmt/trunk/cumin/python/cumin/test.py	2008-08-08 14:04:01 UTC (rev 2270)
+++ mgmt/trunk/cumin/python/cumin/test.py	2008-08-08 20:44:01 UTC (rev 2271)
@@ -69,7 +69,6 @@
 
     def init(self):
         self.broker_conn.open()
-
         session = quirk.Session(self.broker_conn, "test")
         session.open()
 
@@ -397,6 +396,21 @@
         self.run_children(session)
 
 class QueueTest(Test):
+    def __init__(self, env, parent):
+        super(QueueTest, self).__init__(env, parent)
+
+        self.Add(env, self)
+        self.Bind(env, self)
+        self.Remove(env, self)
+        
+        self.queue = None
+
+    def set_queue(self, queue):
+        self.queue = queue
+        
+    def get_queue(self):
+        return self.queue
+    
     def do_run(self, session):
         vhost = self.env.vhost
         name = self.env.broker_queue.name
@@ -414,6 +428,100 @@
 
         self.run_children(session)
 
+    class Add(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.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:
+                queue = Queue.selectBy(vhost=vhost, name=name)[0]
+                self.parent.set_queue(queue)
+            except IndexError:
+                raise Exception("Queue %s not added" % name)
+                self.parent.set_queue(None)
+
+    class Bind(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)
+
+            # try to bind to it
+            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_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)
+
+            self.env.check_redirect(p, s)
+
+    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]
+            form.ids.set(s, ids)
+            
+            form.submit(s)
+            p.process(s)
+
+            self.env.check_redirect(p, s)
+
+            vhost = self.env.vhost
+    
+            # wait for newly created queue to get marked as deleted
+            def predicate():
+                return queue.deletionTime
+
+            wait(predicate)
+
+            # if it timed out, raise an exception
+            if not queue.deletionTime:
+                raise Exception("Queue %s not removed" % name)
+
 class ExchangeTest(Test):
     def do_run(self, session):
         vhost = self.env.vhost




More information about the rhmessaging-commits mailing list