Rename cases to modules and minor bug fix
authorBaohua Yang <baohyang@cn.ibm.com>
Thu, 28 Nov 2013 03:31:04 +0000 (11:31 +0800)
committerBaohua Yang <baohyang@cn.ibm.com>
Thu, 28 Nov 2013 03:31:04 +0000 (11:31 +0800)
Change-Id: Ib48f9135ebffdb362e5c5a5c161f24eff2c5cd6e
Signed-off-by: Baohua Yang <baohyang@cn.ibm.com>
test/tools/CSIT_Test/base/modules/arp_handler.py [moved from test/tools/CSIT_Test/base/cases/arp_handler.py with 98% similarity]
test/tools/CSIT_Test/base/modules/container_manager.py [moved from test/tools/CSIT_Test/base/cases/container_manager.py with 86% similarity]
test/tools/CSIT_Test/base/modules/forwarding_manager.py [moved from test/tools/CSIT_Test/base/cases/forwarding_manager.py with 81% similarity]
test/tools/CSIT_Test/base/modules/forwarding_rule_manager.py [moved from test/tools/CSIT_Test/base/cases/forwarding_rule_manager.py with 100% similarity]
test/tools/CSIT_Test/base/modules/host_tracker.py [moved from test/tools/CSIT_Test/base/cases/host_tracker.py with 84% similarity]
test/tools/CSIT_Test/base/modules/statistics_manager.py [moved from test/tools/CSIT_Test/base/cases/statistics_manager.py with 100% similarity]
test/tools/CSIT_Test/base/modules/switch_manager.py [moved from test/tools/CSIT_Test/base/cases/switch_manager.py with 98% similarity]
test/tools/CSIT_Test/base/modules/topology_manager.py [moved from test/tools/CSIT_Test/base/cases/topology_manager.py with 92% similarity]
test/tools/CSIT_Test/base/restlib.py
test/tools/CSIT_Test/base/run.py
test/tools/CSIT_Test/base/testmodule.py

similarity index 98%
rename from test/tools/CSIT_Test/base/cases/arp_handler.py
rename to test/tools/CSIT_Test/base/modules/arp_handler.py
index f92b94218ed2bba4c75a7bfb24fc4486aa8321aa..aa0eb41895ace10d6dcc58ef888caa536edab9b4 100644 (file)
@@ -52,4 +52,4 @@ class ArpHandler(TestModule):
 
 
 if __name__ == '__main__':
-    print 'arp handler'
+    print 'arp handler'
\ No newline at end of file
similarity index 86%
rename from test/tools/CSIT_Test/base/cases/container_manager.py
rename to test/tools/CSIT_Test/base/modules/container_manager.py
index 805405b567dffae0a21584713e4739fbcd269092..b5808f248d5941d2e984032d6686d3c13f6472c5 100644 (file)
@@ -34,15 +34,13 @@ class ContainerManager(TestModule):
         """
         Add a container
         """
-        self.container = 'container'
-        super(self.__class__, self).add_entry('containermanager', name, body)
+        super(self.__class__, self).add_entry('container', name, body)
 
     def remove_container(self, name):
         """
         Remove a container
         """
-        self.container = 'container'
-        super(self.__class__, self).remove_entry('containermanager', name)
+        super(self.__class__, self).remove_entry('container', name)
 
     def test_container_operations(self, name, body):
         """
@@ -51,4 +49,4 @@ class ContainerManager(TestModule):
         True
         """
         return super(self.__class__, self).test_add_remove_operations('containers', 'container', name, body,
-                                                                      'container-config')
+                                                                      'containerConfig')
similarity index 81%
rename from test/tools/CSIT_Test/base/cases/forwarding_manager.py
rename to test/tools/CSIT_Test/base/modules/forwarding_manager.py
index 5c34e2f9bb2c47fba1f7c13166b4fe2fe5acdca9..82625fce1acfc092ddbdbfb4e1acd928e95befac 100644 (file)
@@ -18,8 +18,10 @@ class ForwardingManager(TestModule):
     Test for the forwarding manager.
     Start 2-layer tree topology network. e.g., in Mininet, run  'sudo mn --controller=remote,ip=127.0.0.1 --mac --topo tree,2'
     """
-    def __init__(self,restSubContext='/controller/nb/v2/staticroute',user=DEFAULT_USER, password=DEFAULT_PWD,container=DEFAULT_CONTAINER,contentType='json',prefix=DEFAULT_PREFIX):
-       super(self.__class__,self).__init__(restSubContext,user,password,container,contentType,prefix)
+
+    def __init__(self, restSubContext='/controller/nb/v2/staticroute', user=DEFAULT_USER, password=DEFAULT_PWD,
+                 container=DEFAULT_CONTAINER, contentType='json', prefix=DEFAULT_PREFIX):
+        super(self.__class__, self).__init__(restSubContext, user, password, container, contentType, prefix)
 
     def get_routes(self):
         """
similarity index 84%
rename from test/tools/CSIT_Test/base/cases/host_tracker.py
rename to test/tools/CSIT_Test/base/modules/host_tracker.py
index 2f81780d36bcff27217d305d6829a09029ff3571..a6a6a2388b7cb7d0a7e067cafaa1e55f55960a0f 100644 (file)
@@ -18,8 +18,10 @@ class HostTracker(TestModule):
     Test for the host tracker..
     Start 2-layer tree topology network. e.g., in Mininet, run  'sudo mn --controller=remote,ip=127.0.0.1 --mac --topo tree,2'
     """
-    def __init__(self,restSubContext='/controller/nb/v2/hosttracker',user=DEFAULT_USER, password=DEFAULT_PWD,container=DEFAULT_CONTAINER,contentType='json',prefix=DEFAULT_PREFIX):
-       super(self.__class__,self).__init__(restSubContext,user,password,container,contentType,prefix)
+
+    def __init__(self, restSubContext='/controller/nb/v2/hosttracker', user=DEFAULT_USER, password=DEFAULT_PWD,
+                 container=DEFAULT_CONTAINER, contentType='json', prefix=DEFAULT_PREFIX):
+        super(self.__class__, self).__init__(restSubContext, user, password, container, contentType, prefix)
 
     def get_hosts(self):
         """
similarity index 98%
rename from test/tools/CSIT_Test/base/cases/switch_manager.py
rename to test/tools/CSIT_Test/base/modules/switch_manager.py
index 0f18736a72cad471a2526c4f55ead61163c9a637..d4492f5ae38cedfc36697cc1bd4afe17b711b031 100644 (file)
@@ -79,8 +79,8 @@ class SwitchManager(TestModule):
         """
         result = []
         r = self.get_nodes()
-        if r:
-            t = [e['node'] for e in r['nodeProperties']]
+        t = super(self.__class__, self).extract_properties(r, 'nodeProperties', 'node')
+        if t:
             result.append({u'type': u'OF', u'id': u'00:00:00:00:00:00:00:01'} in t)
             result.append({u'type': u'OF', u'id': u'00:00:00:00:00:00:00:02'} in t)
             result.append({u'type': u'OF', u'id': u'00:00:00:00:00:00:00:03'} in t)
similarity index 92%
rename from test/tools/CSIT_Test/base/cases/topology_manager.py
rename to test/tools/CSIT_Test/base/modules/topology_manager.py
index e7a5ca9727467716a0d7bd1afdc097cb3def723d..72defc25a32c27a9067f87a58849670c6980455a 100644 (file)
@@ -26,31 +26,9 @@ class TopologyManager(TestModule):
     def get_topology(self):
         """
         The name is suggested to match the NB API.
-        Show the topology
-        >>> TopologyManager().get_topology()
-        True
+        Get the topology
         """
-        result = []
-        r = super(self.__class__, self).get_entries()
-        if r:
-            v = [e['edge'] for e in r['edgeProperties']]
-            result.append({u'tailNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:01'},
-                                                  u'type': u'OF', u'id': u'2'},
-                           u'headNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:03'},
-                                                  u'type': u'OF', u'id': u'3'}} in v)
-            result.append({u'tailNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:03'},
-                                                  u'type': u'OF', u'id': u'3'},
-                           u'headNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:01'},
-                                                  u'type': u'OF', u'id': u'2'}} in v)
-            result.append({u'tailNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:02'},
-                                                  u'type': u'OF', u'id': u'3'},
-                           u'headNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:01'},
-                                                  u'type': u'OF', u'id': u'1'}} in v)
-            result.append({u'tailNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:01'},
-                                                  u'type': u'OF', u'id': u'1'},
-                           u'headNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:02'},
-                                                  u'type': u'OF', u'id': u'3'}} in v)
-            print result == [True, True, True, True]
+        return super(self.__class__, self).get_entries()
 
     def get_userlinks(self):
         """
@@ -78,6 +56,35 @@ class TopologyManager(TestModule):
         r = super(self.__class__, self).delete(suffix + '/' + name)
         return r
 
+    def test_get_topology(self):
+        """
+        The name is suggested to match the NB API.
+        Test the topology
+        >>> TopologyManager().test_get_topology()
+        True
+        """
+        result = []
+        r = self.get_topology()
+        if r:
+            v = [e['edge'] for e in r['edgeProperties']]
+            result.append({u'tailNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:01'},
+                                                  u'type': u'OF', u'id': u'2'},
+                           u'headNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:03'},
+                                                  u'type': u'OF', u'id': u'3'}} in v)
+            result.append({u'tailNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:03'},
+                                                  u'type': u'OF', u'id': u'3'},
+                           u'headNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:01'},
+                                                  u'type': u'OF', u'id': u'2'}} in v)
+            result.append({u'tailNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:02'},
+                                                  u'type': u'OF', u'id': u'3'},
+                           u'headNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:01'},
+                                                  u'type': u'OF', u'id': u'1'}} in v)
+            result.append({u'tailNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:01'},
+                                                  u'type': u'OF', u'id': u'1'},
+                           u'headNodeConnector': {u'node': {u'type': u'OF', u'id': u'00:00:00:00:00:00:00:02'},
+                                                  u'type': u'OF', u'id': u'3'}} in v)
+            print result == [True, True, True, True]
+
     def test_userlink_operations(self, name, body):
         """
         Test userlink operations, like adding and removing.
index 996f2770a3ce6b674c221c6bfc8587147982ea25..f1f8858de77cfec72017a018e407f782c01d1763 100644 (file)
@@ -16,7 +16,7 @@ DEFAULT_PREFIX = 'http://' + DEFAULT_CONTROLLER_IP + ':' + DEFAULT_PORT
 DEFAULT_CONTAINER = 'default'
 DEFAULT_USER = 'admin'
 DEFAULT_PWD = 'admin'
-CASES_DIR = 'cases'
+MODULES_DIR = 'modules'
 TIMEOUTS = 2
 
 '''
index 929f7e6d1ed66f625bd681c182920e25d9b53d17..1a4dabc23b97075cc052aaf0bdeb36d0454b4c14 100644 (file)
@@ -14,7 +14,7 @@ import os
 from restlib import *
 
 
-def test_case(module_name):
+def test_module(module_name):
     '''
     Run single test on given module.
     '''
@@ -30,10 +30,10 @@ def run(modules=None):
     '''
     backup_dir = os.getcwd()
     if not modules:
-        modules = [e[:-3] for e in os.listdir(CASES_DIR) if e.endswith('.py')]
-    os.chdir(backup_dir + '/' + CASES_DIR)
+        modules = [e[:-3] for e in os.listdir(MODULES_DIR) if e.endswith('.py')]
+    os.chdir(backup_dir + '/' + MODULES_DIR)
     for name in modules:
-        test_case(name)
+        test_module(name)
     os.chdir(backup_dir)
 
 
index 64df8773ddf5636c425f1cb8bbd89033aff3a16a..928b67b0bfa2334a98975656134f8395a0cf33d8 100644 (file)
@@ -22,6 +22,16 @@ class TestModule(object):
         self.contentType = contentType
         self.prefix = prefix
 
+
+    def extract_properties(self, content, key, property):
+        """
+        Return all nodes.
+        """
+        if not isinstance(content, dict) or not content.has_key(key):
+            return None
+        else:
+            return [e.get(property) for e in content[key]]
+
     def get_entries(self, suffix=None, key=None):
         """
         Get the existed entries in the service.