From 7e9b180b0d10e84450eb2990549c02c106b0302e Mon Sep 17 00:00:00 2001 From: rexlee8776 Date: Tue, 19 Jul 2016 14:19:55 +0000 Subject: add support for suite to support constraints and task_args suite.yaml has constraint and task_args parameter, so each task_case can be able to add constaints (currently support pod_name and installer), also support parameters to be replace for special test case like tc043. JIRA: YARDSTICK-299 Change-Id: I2b2c8f9858893da03aaa8bcac20a474a2d434509 Signed-off-by: rexlee8776 --- .../no_constraint_no_args_scenario_sample.yaml | 13 ++++ .../no_constraint_with_args_scenario_sample.yaml | 15 +++++ tests/unit/cmd/commands/test_task.py | 77 ++++++++++++++++++++++ .../with_constraint_no_args_scenario_sample.yaml | 16 +++++ .../with_constraint_with_args_scenario_sample.yaml | 18 +++++ 5 files changed, 139 insertions(+) create mode 100644 tests/unit/cmd/commands/no_constraint_no_args_scenario_sample.yaml create mode 100644 tests/unit/cmd/commands/no_constraint_with_args_scenario_sample.yaml create mode 100644 tests/unit/cmd/commands/with_constraint_no_args_scenario_sample.yaml create mode 100644 tests/unit/cmd/commands/with_constraint_with_args_scenario_sample.yaml (limited to 'tests/unit/cmd/commands') diff --git a/tests/unit/cmd/commands/no_constraint_no_args_scenario_sample.yaml b/tests/unit/cmd/commands/no_constraint_no_args_scenario_sample.yaml new file mode 100644 index 000000000..4933b93ae --- /dev/null +++ b/tests/unit/cmd/commands/no_constraint_no_args_scenario_sample.yaml @@ -0,0 +1,13 @@ +--- +# Huawei US bare daily task suite + +schema: "yardstick:suite:0.1" + +name: "os-nosdn-nofeature-ha" +test_cases_dir: "tests/opnfv/test_cases/" +test_cases: +- + file_name: opnfv_yardstick_tc037.yaml +- + file_name: opnfv_yardstick_tc043.yaml + diff --git a/tests/unit/cmd/commands/no_constraint_with_args_scenario_sample.yaml b/tests/unit/cmd/commands/no_constraint_with_args_scenario_sample.yaml new file mode 100644 index 000000000..f39df7346 --- /dev/null +++ b/tests/unit/cmd/commands/no_constraint_with_args_scenario_sample.yaml @@ -0,0 +1,15 @@ +--- +# Huawei US bare daily task suite + +schema: "yardstick:suite:0.1" + +name: "os-nosdn-nofeature-ha" +test_cases_dir: "tests/opnfv/test_cases/" +test_cases: +- + file_name: opnfv_yardstick_tc037.yaml +- + file_name: opnfv_yardstick_tc043.yaml + task_args: + huawei-pod1: '{"host": "node1.LF","target": "node2.LF"}' + diff --git a/tests/unit/cmd/commands/test_task.py b/tests/unit/cmd/commands/test_task.py index ccb0f2aec..0177fd08a 100644 --- a/tests/unit/cmd/commands/test_task.py +++ b/tests/unit/cmd/commands/test_task.py @@ -11,6 +11,7 @@ # Unittest for yardstick.cmd.commands.task +import os import mock import unittest @@ -71,3 +72,79 @@ class TaskCommandsTestCase(unittest.TestCase): mock_os.environ.get.side_effect = ['compass', 'os-nosdn', 'huawei-pod1'] result = t._check_precondition(cfg) self.assertTrue(result) + + @mock.patch('yardstick.cmd.commands.task.os.environ') + def test_parse_suite_no_constraint_no_args(self, mock_environ): + SAMPLE_SCENARIO_PATH = "no_constraint_no_args_scenario_sample.yaml" + 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') + self.assertEqual(task_args[0], None) + self.assertEqual(task_args[1], None) + self.assertEqual(task_args_fnames[0], None) + self.assertEqual(task_args_fnames[1], None) + + @mock.patch('yardstick.cmd.commands.task.os.environ') + def test_parse_suite_no_constraint_with_args(self, mock_environ): + SAMPLE_SCENARIO_PATH = "no_constraint_with_args_scenario_sample.yaml" + 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') + 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) + + @mock.patch('yardstick.cmd.commands.task.os.environ') + def test_parse_suite_with_constraint_no_args(self, mock_environ): + SAMPLE_SCENARIO_PATH = "with_constraint_no_args_scenario_sample.yaml" + 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') + self.assertEqual(task_args[0], None) + self.assertEqual(task_args[1], None) + self.assertEqual(task_args_fnames[0], None) + self.assertEqual(task_args_fnames[1], None) + + @mock.patch('yardstick.cmd.commands.task.os.environ') + def test_parse_suite_with_constraint_with_args(self, mock_environ): + SAMPLE_SCENARIO_PATH = "with_constraint_with_args_scenario_sample.yaml" + 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') + 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 _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 + diff --git a/tests/unit/cmd/commands/with_constraint_no_args_scenario_sample.yaml b/tests/unit/cmd/commands/with_constraint_no_args_scenario_sample.yaml new file mode 100644 index 000000000..8194a2361 --- /dev/null +++ b/tests/unit/cmd/commands/with_constraint_no_args_scenario_sample.yaml @@ -0,0 +1,16 @@ +--- +# Huawei US bare daily task suite + +schema: "yardstick:suite:0.1" + +name: "os-nosdn-nofeature-ha" +test_cases_dir: "tests/opnfv/test_cases/" +test_cases: +- + file_name: opnfv_yardstick_tc037.yaml +- + file_name: opnfv_yardstick_tc043.yaml + constraint: + installer: compass + pod: huawei-pod1 + diff --git a/tests/unit/cmd/commands/with_constraint_with_args_scenario_sample.yaml b/tests/unit/cmd/commands/with_constraint_with_args_scenario_sample.yaml new file mode 100644 index 000000000..86c9b2800 --- /dev/null +++ b/tests/unit/cmd/commands/with_constraint_with_args_scenario_sample.yaml @@ -0,0 +1,18 @@ +--- +# Huawei US bare daily task suite + +schema: "yardstick:suite:0.1" + +name: "os-nosdn-nofeature-ha" +test_cases_dir: "tests/opnfv/test_cases/" +test_cases: +- + file_name: opnfv_yardstick_tc037.yaml +- + file_name: opnfv_yardstick_tc043.yaml + constraint: + installer: compass + pod: huawei-pod1 + task_args: + huawei-pod1: '{"host": "node1.LF","target": "node2.LF"}' + -- cgit 1.2.3-korg