Merge "increase line length to 99"
[yardstick.git] / tests / unit / benchmark / core / test_task.py
index 463c43e..b64bb8e 100644 (file)
 
 # Unittest for yardstick.benchmark.core.task
 
+from __future__ import print_function
+
+from __future__ import absolute_import
 import os
-import mock
 import unittest
 
+try:
+    from unittest import mock
+except ImportError:
+    import mock
+
+
 from yardstick.benchmark.core import task
+from yardstick.common import constants as consts
 
 
 class TaskTestCase(unittest.TestCase):
@@ -28,9 +37,9 @@ class TaskTestCase(unittest.TestCase):
         }
         scenario_cfg = {"nodes": nodes}
         server_info = {
-           "ip": "10.20.0.3",
-           "user": "root",
-           "key_filename": "/root/.ssh/id_rsa"
+            "ip": "10.20.0.3",
+            "user": "root",
+            "key_filename": "/root/.ssh/id_rsa"
         }
         mock_context.get_server.return_value = server_info
         context_cfg = task.parse_nodes_with_context(scenario_cfg)
@@ -48,13 +57,15 @@ class TaskTestCase(unittest.TestCase):
                 'duration': 60,
                 'interval': 1,
                 'type': 'Duration'
-             },
+            },
             'type': 'Ping'
         }
 
         t = task.Task()
         runner = mock.Mock()
         runner.join.return_value = 0
+        runner.get_output.return_value = {}
+        runner.get_result.return_value = []
         mock_base_runner.Runner.get.return_value = runner
         t._run([scenario], False, "yardstick.out")
         self.assertTrue(runner.run.called)
@@ -82,12 +93,12 @@ class TaskTestCase(unittest.TestCase):
         t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
         mock_environ.get.side_effect = ['huawei-pod1', 'compass']
         task_files, task_args, task_args_fnames = t.parse_suite()
-        print ("files=%s, args=%s, fnames=%s" % (task_files, task_args,
-               task_args_fnames))
-        self.assertEqual(task_files[0],
-                         'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml')
-        self.assertEqual(task_files[1],
-                         'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml')
+        print("files=%s, args=%s, fnames=%s" % (task_files, task_args,
+                                                task_args_fnames))
+        self.assertEqual(task_files[0], self.change_to_abspath(
+                         'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
+        self.assertEqual(task_files[1], self.change_to_abspath(
+                         'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
         self.assertEqual(task_args[0], None)
         self.assertEqual(task_args[1], None)
         self.assertEqual(task_args_fnames[0], None)
@@ -99,12 +110,12 @@ class TaskTestCase(unittest.TestCase):
         t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
         mock_environ.get.side_effect = ['huawei-pod1', 'compass']
         task_files, task_args, task_args_fnames = t.parse_suite()
-        print ("files=%s, args=%s, fnames=%s" % (task_files, task_args,
-               task_args_fnames))
-        self.assertEqual(task_files[0],
-                         'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml')
-        self.assertEqual(task_files[1],
-                         'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml')
+        print("files=%s, args=%s, fnames=%s" % (task_files, task_args,
+                                                task_args_fnames))
+        self.assertEqual(task_files[0], self.change_to_abspath(
+                         'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
+        self.assertEqual(task_files[1], self.change_to_abspath(
+                         'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
         self.assertEqual(task_args[0], None)
         self.assertEqual(task_args[1],
                          '{"host": "node1.LF","target": "node2.LF"}')
@@ -117,12 +128,12 @@ class TaskTestCase(unittest.TestCase):
         t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
         mock_environ.get.side_effect = ['huawei-pod1', 'compass']
         task_files, task_args, task_args_fnames = t.parse_suite()
-        print ("files=%s, args=%s, fnames=%s" % (task_files, task_args,
-               task_args_fnames))
-        self.assertEqual(task_files[0],
-                         'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml')
-        self.assertEqual(task_files[1],
-                         'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml')
+        print("files=%s, args=%s, fnames=%s" % (task_files, task_args,
+                                                task_args_fnames))
+        self.assertEqual(task_files[0], self.change_to_abspath(
+                         'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
+        self.assertEqual(task_files[1], self.change_to_abspath(
+                         'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
         self.assertEqual(task_args[0], None)
         self.assertEqual(task_args[1], None)
         self.assertEqual(task_args_fnames[0], None)
@@ -134,23 +145,77 @@ class TaskTestCase(unittest.TestCase):
         t = task.TaskParser(self._get_file_abspath(SAMPLE_SCENARIO_PATH))
         mock_environ.get.side_effect = ['huawei-pod1', 'compass']
         task_files, task_args, task_args_fnames = t.parse_suite()
-        print ("files=%s, args=%s, fnames=%s" % (task_files, task_args,
-               task_args_fnames))
-        self.assertEqual(task_files[0],
-                         'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml')
-        self.assertEqual(task_files[1],
-                         'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml')
+        print("files=%s, args=%s, fnames=%s" % (task_files, task_args,
+                                                task_args_fnames))
+        self.assertEqual(task_files[0], self.change_to_abspath(
+                         'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml'))
+        self.assertEqual(task_files[1], self.change_to_abspath(
+                         'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml'))
         self.assertEqual(task_args[0], None)
         self.assertEqual(task_args[1],
                          '{"host": "node1.LF","target": "node2.LF"}')
         self.assertEqual(task_args_fnames[0], None)
         self.assertEqual(task_args_fnames[1], None)
 
+    def test_parse_options(self):
+        options = {
+            'openstack': {
+                'EXTERNAL_NETWORK': '$network'
+            },
+            'ndoes': ['node1', '$node'],
+            'host': '$host'
+        }
+
+        t = task.Task()
+        t.outputs = {
+            'network': 'ext-net',
+            'node': 'node2',
+            'host': 'server.yardstick'
+        }
+
+        idle_result = {
+            'openstack': {
+                'EXTERNAL_NETWORK': 'ext-net'
+            },
+            'ndoes': ['node1', 'node2'],
+            'host': 'server.yardstick'
+        }
+
+        actual_result = t._parse_options(options)
+        self.assertEqual(idle_result, actual_result)
+
+    def test_change_server_name_host_str(self):
+        scenario = {'host': 'demo'}
+        suffix = '-8'
+        task.change_server_name(scenario, suffix)
+        self.assertTrue(scenario['host'], 'demo-8')
+
+    def test_change_server_name_host_dict(self):
+        scenario = {'host': {'name': 'demo'}}
+        suffix = '-8'
+        task.change_server_name(scenario, suffix)
+        self.assertTrue(scenario['host']['name'], 'demo-8')
+
+    def test_change_server_name_target_str(self):
+        scenario = {'target': 'demo'}
+        suffix = '-8'
+        task.change_server_name(scenario, suffix)
+        self.assertTrue(scenario['target'], 'demo-8')
+
+    def test_change_server_name_target_dict(self):
+        scenario = {'target': {'name': 'demo'}}
+        suffix = '-8'
+        task.change_server_name(scenario, suffix)
+        self.assertTrue(scenario['target']['name'], 'demo-8')
+
     def _get_file_abspath(self, filename):
         curr_path = os.path.dirname(os.path.abspath(__file__))
         file_path = os.path.join(curr_path, filename)
         return file_path
 
+    def change_to_abspath(self, filepath):
+        return os.path.join(consts.YARDSTICK_ROOT_PATH, filepath)
+
 
 def main():
     unittest.main()