diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/ci/clean_images.sh | 7 | ||||
-rwxr-xr-x | tests/ci/yardstick-verify | 2 | ||||
-rw-r--r-- | tests/unit/benchmark/contexts/test_heat.py | 16 | ||||
-rw-r--r-- | tests/unit/benchmark/core/__init__.py | 0 | ||||
-rw-r--r-- | tests/unit/benchmark/core/no_constraint_no_args_scenario_sample.yaml (renamed from tests/unit/cmd/commands/no_constraint_no_args_scenario_sample.yaml) | 0 | ||||
-rw-r--r-- | tests/unit/benchmark/core/no_constraint_with_args_scenario_sample.yaml (renamed from tests/unit/cmd/commands/no_constraint_with_args_scenario_sample.yaml) | 0 | ||||
-rw-r--r-- | tests/unit/benchmark/core/test_plugin.py (renamed from tests/unit/cmd/commands/test_plugin.py) | 32 | ||||
-rw-r--r-- | tests/unit/benchmark/core/test_task.py (renamed from tests/unit/cmd/commands/test_task.py) | 88 | ||||
-rw-r--r-- | tests/unit/benchmark/core/test_testcase.py (renamed from tests/unit/cmd/commands/test_testcase.py) | 29 | ||||
-rw-r--r-- | tests/unit/benchmark/core/with_constraint_no_args_scenario_sample.yaml (renamed from tests/unit/cmd/commands/with_constraint_no_args_scenario_sample.yaml) | 0 | ||||
-rw-r--r-- | tests/unit/benchmark/core/with_constraint_with_args_scenario_sample.yaml (renamed from tests/unit/cmd/commands/with_constraint_with_args_scenario_sample.yaml) | 0 | ||||
-rw-r--r-- | tests/unit/cmd/commands/test_env.py | 45 | ||||
-rw-r--r-- | tests/unit/common/test_httpClient.py | 6 | ||||
-rw-r--r-- | tests/unit/test_ssh.py | 36 |
14 files changed, 188 insertions, 73 deletions
diff --git a/tests/ci/clean_images.sh b/tests/ci/clean_images.sh index 5d661283d..fa4a54df6 100755 --- a/tests/ci/clean_images.sh +++ b/tests/ci/clean_images.sh @@ -27,3 +27,10 @@ cleanup() openstack flavor delete yardstick-flavor &> /dev/null || true } + +main() +{ + cleanup +} + +main diff --git a/tests/ci/yardstick-verify b/tests/ci/yardstick-verify index 46b32cc2c..f9d98a4da 100755 --- a/tests/ci/yardstick-verify +++ b/tests/ci/yardstick-verify @@ -320,8 +320,6 @@ main() source $YARDSTICK_REPO_DIR/tests/ci/clean_images.sh - cleanup - trap "error_exit" EXIT SIGTERM source $YARDSTICK_REPO_DIR/tests/ci/load_images.sh diff --git a/tests/unit/benchmark/contexts/test_heat.py b/tests/unit/benchmark/contexts/test_heat.py index f891b0a5f..dd830a485 100644 --- a/tests/unit/benchmark/contexts/test_heat.py +++ b/tests/unit/benchmark/contexts/test_heat.py @@ -11,6 +11,7 @@ # Unittest for yardstick.benchmark.contexts.heat +import os import mock import unittest @@ -39,6 +40,8 @@ class HeatContextTestCase(unittest.TestCase): self.assertIsNone(self.test_context._user) self.assertIsNone(self.test_context.template_file) self.assertIsNone(self.test_context.heat_parameters) + self.assertIsNotNone(self.test_context.key_uuid) + self.assertIsNotNone(self.test_context.key_filename) @mock.patch('yardstick.benchmark.contexts.heat.PlacementGroup') @mock.patch('yardstick.benchmark.contexts.heat.Network') @@ -55,6 +58,7 @@ class HeatContextTestCase(unittest.TestCase): self.test_context.init(attrs) + self.assertEqual(self.test_context.name, "foo") self.assertEqual(self.test_context.keypair_name, "foo-key") self.assertEqual(self.test_context.secgroup_name, "foo-secgroup") @@ -69,14 +73,23 @@ class HeatContextTestCase(unittest.TestCase): mock_server.assert_called_with('baz', self.test_context, servers['baz']) self.assertTrue(len(self.test_context.servers) == 1) + if os.path.exists(self.test_context.key_filename): + try: + os.remove(self.test_context.key_filename) + os.remove(self.test_context.key_filename + ".pub") + except OSError: + LOG.exception("key_filename: %s", e.key_filename) + @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate') def test__add_resources_to_template_no_servers(self, mock_template): self.test_context.keypair_name = "foo-key" self.test_context.secgroup_name = "foo-secgroup" + self.test_context.key_uuid = "2f2e4997-0a8e-4eb7-9fa4-f3f8fbbc393b" self.test_context._add_resources_to_template(mock_template) - mock_template.add_keypair.assert_called_with("foo-key") + mock_template.add_keypair.assert_called_with("foo-key", + "2f2e4997-0a8e-4eb7-9fa4-f3f8fbbc393b") mock_template.add_security_group.assert_called_with("foo-secgroup") @mock.patch('yardstick.benchmark.contexts.heat.HeatTemplate') @@ -100,6 +113,7 @@ class HeatContextTestCase(unittest.TestCase): self.assertTrue(mock_template.delete.called) + def test__get_server(self): self.mock_context.name = 'bar' diff --git a/tests/unit/benchmark/core/__init__.py b/tests/unit/benchmark/core/__init__.py new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/tests/unit/benchmark/core/__init__.py diff --git a/tests/unit/cmd/commands/no_constraint_no_args_scenario_sample.yaml b/tests/unit/benchmark/core/no_constraint_no_args_scenario_sample.yaml index 4933b93ae..4933b93ae 100644 --- a/tests/unit/cmd/commands/no_constraint_no_args_scenario_sample.yaml +++ b/tests/unit/benchmark/core/no_constraint_no_args_scenario_sample.yaml diff --git a/tests/unit/cmd/commands/no_constraint_with_args_scenario_sample.yaml b/tests/unit/benchmark/core/no_constraint_with_args_scenario_sample.yaml index f39df7346..f39df7346 100644 --- a/tests/unit/cmd/commands/no_constraint_with_args_scenario_sample.yaml +++ b/tests/unit/benchmark/core/no_constraint_with_args_scenario_sample.yaml diff --git a/tests/unit/cmd/commands/test_plugin.py b/tests/unit/benchmark/core/test_plugin.py index 2e823fdae..441116a25 100644 --- a/tests/unit/cmd/commands/test_plugin.py +++ b/tests/unit/benchmark/core/test_plugin.py @@ -9,12 +9,12 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -# Unittest for yardstick.cmd.commands.plugin +# Unittest for yardstick.benchmark.core.plugin import mock import unittest -from yardstick.cmd.commands import plugin +from yardstick.benchmark.core import plugin class Arg(object): @@ -22,30 +22,30 @@ class Arg(object): self.input_file = ('plugin/sample_config.yaml',) -@mock.patch('yardstick.cmd.commands.plugin.ssh') -class pluginCommandsTestCase(unittest.TestCase): +@mock.patch('yardstick.benchmark.core.plugin.ssh') +class pluginTestCase(unittest.TestCase): def setUp(self): self.result = {} - def test_do_install(self, mock_ssh): - p = plugin.PluginCommands() + def test_install(self, mock_ssh): + p = plugin.Plugin() mock_ssh.SSH().execute.return_value = (0, '', '') input_file = Arg() - p.do_install(input_file) + p.install(input_file) expected_result = {} self.assertEqual(self.result, expected_result) - def test_do_remove(self, mock_ssh): - p = plugin.PluginCommands() + def test_remove(self, mock_ssh): + p = plugin.Plugin() mock_ssh.SSH().execute.return_value = (0, '', '') input_file = Arg() - p.do_remove(input_file) + p.remove(input_file) expected_result = {} self.assertEqual(self.result, expected_result) def test_install_setup_run(self, mock_ssh): - p = plugin.PluginCommands() + p = plugin.Plugin() mock_ssh.SSH().execute.return_value = (0, '', '') plugins = { "name": "sample" @@ -64,7 +64,7 @@ class pluginCommandsTestCase(unittest.TestCase): self.assertEqual(self.result, expected_result) def test_remove_setup_run(self, mock_ssh): - p = plugin.PluginCommands() + p = plugin.Plugin() mock_ssh.SSH().execute.return_value = (0, '', '') plugins = { "name": "sample" @@ -81,3 +81,11 @@ class pluginCommandsTestCase(unittest.TestCase): p._run(plugin_name) expected_result = {} self.assertEqual(self.result, expected_result) + + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tests/unit/cmd/commands/test_task.py b/tests/unit/benchmark/core/test_task.py index 0177fd08a..463c43e1f 100644 --- a/tests/unit/cmd/commands/test_task.py +++ b/tests/unit/benchmark/core/test_task.py @@ -9,18 +9,18 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -# Unittest for yardstick.cmd.commands.task +# Unittest for yardstick.benchmark.core.task import os import mock import unittest -from yardstick.cmd.commands import task +from yardstick.benchmark.core import task -class TaskCommandsTestCase(unittest.TestCase): +class TaskTestCase(unittest.TestCase): - @mock.patch('yardstick.cmd.commands.task.Context') + @mock.patch('yardstick.benchmark.core.task.Context') def test_parse_nodes_host_target_same_context(self, mock_context): nodes = { "host": "node1.LF", @@ -38,42 +38,45 @@ class TaskCommandsTestCase(unittest.TestCase): self.assertEqual(context_cfg["host"], server_info) self.assertEqual(context_cfg["target"], server_info) - @mock.patch('yardstick.cmd.commands.task.Context') - @mock.patch('yardstick.cmd.commands.task.base_runner') + @mock.patch('yardstick.benchmark.core.task.Context') + @mock.patch('yardstick.benchmark.core.task.base_runner') def test_run(self, mock_base_runner, mock_ctx): - scenario = \ - {'host': 'athena.demo', - 'target': 'ares.demo', - 'runner': - {'duration': 60, - 'interval': 1, - 'type': 'Duration' - }, - 'type': 'Ping'} - - t = task.TaskCommands() + scenario = { + 'host': 'athena.demo', + 'target': 'ares.demo', + 'runner': { + 'duration': 60, + 'interval': 1, + 'type': 'Duration' + }, + 'type': 'Ping' + } + + t = task.Task() runner = mock.Mock() runner.join.return_value = 0 mock_base_runner.Runner.get.return_value = runner t._run([scenario], False, "yardstick.out") self.assertTrue(runner.run.called) - @mock.patch('yardstick.cmd.commands.task.os') + @mock.patch('yardstick.benchmark.core.task.os') def test_check_precondition(self, mock_os): - cfg = \ - {'precondition': - {'installer_type': 'compass', - 'deploy_scenarios': 'os-nosdn', - 'pod_name': 'huawei-pod1' - } + cfg = { + 'precondition': { + 'installer_type': 'compass', + 'deploy_scenarios': 'os-nosdn', + 'pod_name': 'huawei-pod1' } + } t = task.TaskParser('/opt') - mock_os.environ.get.side_effect = ['compass', 'os-nosdn', 'huawei-pod1'] + 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') + @mock.patch('yardstick.benchmark.core.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)) @@ -82,15 +85,15 @@ class TaskCommandsTestCase(unittest.TestCase): 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') + 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml') self.assertEqual(task_files[1], - 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml') + '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') + @mock.patch('yardstick.benchmark.core.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)) @@ -99,16 +102,16 @@ class TaskCommandsTestCase(unittest.TestCase): 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') + 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml') self.assertEqual(task_files[1], - 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml') + '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"}') + '{"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') + @mock.patch('yardstick.benchmark.core.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)) @@ -117,15 +120,15 @@ class TaskCommandsTestCase(unittest.TestCase): 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') + 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml') self.assertEqual(task_files[1], - 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml') + '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') + @mock.patch('yardstick.benchmark.core.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)) @@ -134,12 +137,12 @@ class TaskCommandsTestCase(unittest.TestCase): 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') + 'tests/opnfv/test_cases/opnfv_yardstick_tc037.yaml') self.assertEqual(task_files[1], - 'tests/opnfv/test_cases/opnfv_yardstick_tc043.yaml') + '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"}') + '{"host": "node1.LF","target": "node2.LF"}') self.assertEqual(task_args_fnames[0], None) self.assertEqual(task_args_fnames[1], None) @@ -148,3 +151,10 @@ class TaskCommandsTestCase(unittest.TestCase): file_path = os.path.join(curr_path, filename) return file_path + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tests/unit/cmd/commands/test_testcase.py b/tests/unit/benchmark/core/test_testcase.py index c55c367d0..6e0473cc1 100644 --- a/tests/unit/cmd/commands/test_testcase.py +++ b/tests/unit/benchmark/core/test_testcase.py @@ -11,26 +11,33 @@ # Unittest for yardstick.cmd.commands.testcase -import mock import unittest -from yardstick.cmd.commands import testcase -from yardstick.cmd.commands.testcase import TestcaseCommands +from yardstick.benchmark.core import testcase + class Arg(object): def __init__(self): - self.casename=('opnfv_yardstick_tc001',) + self.casename = ('opnfv_yardstick_tc001',) + -class TestcaseCommandsUT(unittest.TestCase): +class TestcaseUT(unittest.TestCase): - def test_do_list(self): - t = testcase.TestcaseCommands() - result = t.do_list("") + def test_list_all(self): + t = testcase.Testcase() + result = t.list_all("") self.assertEqual(result, True) - def test_do_show(self): - t = testcase.TestcaseCommands() + def test_show(self): + t = testcase.Testcase() casename = Arg() - result = t.do_show(casename) + result = t.show(casename) self.assertEqual(result, True) + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tests/unit/cmd/commands/with_constraint_no_args_scenario_sample.yaml b/tests/unit/benchmark/core/with_constraint_no_args_scenario_sample.yaml index 8194a2361..8194a2361 100644 --- a/tests/unit/cmd/commands/with_constraint_no_args_scenario_sample.yaml +++ b/tests/unit/benchmark/core/with_constraint_no_args_scenario_sample.yaml diff --git a/tests/unit/cmd/commands/with_constraint_with_args_scenario_sample.yaml b/tests/unit/benchmark/core/with_constraint_with_args_scenario_sample.yaml index 86c9b2800..86c9b2800 100644 --- a/tests/unit/cmd/commands/with_constraint_with_args_scenario_sample.yaml +++ b/tests/unit/benchmark/core/with_constraint_with_args_scenario_sample.yaml diff --git a/tests/unit/cmd/commands/test_env.py b/tests/unit/cmd/commands/test_env.py index af1ab8030..e85c36755 100644 --- a/tests/unit/cmd/commands/test_env.py +++ b/tests/unit/cmd/commands/test_env.py @@ -8,17 +8,56 @@ ############################################################################## import unittest import mock +import uuid from yardstick.cmd.commands.env import EnvCommand class EnvCommandTestCase(unittest.TestCase): - @mock.patch('yardstick.cmd.commands.env.HttpClient') - def test_do_influxdb(self, mock_http_client): + @mock.patch('yardstick.cmd.commands.env.EnvCommand._start_async_task') + @mock.patch('yardstick.cmd.commands.env.EnvCommand._check_status') + def test_do_influxdb(self, check_status_mock, start_async_task_mock): env = EnvCommand() env.do_influxdb({}) - self.assertTrue(mock_http_client().post.called) + self.assertTrue(start_async_task_mock.called) + self.assertTrue(check_status_mock.called) + + @mock.patch('yardstick.cmd.commands.env.EnvCommand._start_async_task') + @mock.patch('yardstick.cmd.commands.env.EnvCommand._check_status') + def test_do_grafana(self, check_status_mock, start_async_task_mock): + env = EnvCommand() + env.do_grafana({}) + self.assertTrue(start_async_task_mock.called) + self.assertTrue(check_status_mock.called) + + @mock.patch('yardstick.cmd.commands.env.EnvCommand._start_async_task') + @mock.patch('yardstick.cmd.commands.env.EnvCommand._check_status') + def test_do_prepare(self, check_status_mock, start_async_task_mock): + env = EnvCommand() + env.do_prepare({}) + self.assertTrue(start_async_task_mock.called) + self.assertTrue(check_status_mock.called) + + @mock.patch('yardstick.cmd.commands.env.HttpClient.post') + def test_start_async_task(self, post_mock): + data = {'action': 'createGrafanaContainer'} + EnvCommand()._start_async_task(data) + self.assertTrue(post_mock.called) + + @mock.patch('yardstick.cmd.commands.env.HttpClient.get') + @mock.patch('yardstick.cmd.commands.env.EnvCommand._print_status') + def test_check_status(self, print_mock, get_mock): + task_id = str(uuid.uuid4()) + get_mock.return_value = {'status': 2, 'result': 'error'} + status = EnvCommand()._check_status(task_id, 'hello world') + self.assertEqual(status, 2) + + def test_print_status(self): + try: + EnvCommand()._print_status('hello', 'word') + except Exception as e: + self.assertIsInstance(e, IndexError) def main(): diff --git a/tests/unit/common/test_httpClient.py b/tests/unit/common/test_httpClient.py index b39dc2332..94ac1c891 100644 --- a/tests/unit/common/test_httpClient.py +++ b/tests/unit/common/test_httpClient.py @@ -24,6 +24,12 @@ class HttpClientTestCase(unittest.TestCase): mock_requests.post.assert_called_with(url, data=json.dumps(data), headers=headers) + @mock.patch('yardstick.common.httpClient.requests') + def test_get(self, mock_requests): + url = 'http://localhost:5000/hello' + httpClient.HttpClient().get(url) + mock_requests.get.assert_called_with(url) + def main(): unittest.main() diff --git a/tests/unit/test_ssh.py b/tests/unit/test_ssh.py index 8b828ed7c..045ac0f1b 100644 --- a/tests/unit/test_ssh.py +++ b/tests/unit/test_ssh.py @@ -310,12 +310,38 @@ class SSHRunTestCase(unittest.TestCase): @mock.patch("yardstick.ssh.open", create=True) def test__put_file_shell(self, mock_open): - self.test_client.run = mock.Mock() - self.test_client._put_file_shell("localfile", "remotefile", 0o42) + with mock.patch.object(self.test_client, "run") as run_mock: + self.test_client._put_file_shell("localfile", "remotefile", 0o42) + run_mock.assert_called_once_with( + 'cat > "remotefile"&& chmod -- 042 "remotefile"', + stdin=mock_open.return_value.__enter__.return_value) - self.test_client.run.assert_called_once_with( - 'cat > remotefile && chmod -- 042 remotefile', - stdin=mock_open.return_value.__enter__.return_value) + @mock.patch("yardstick.ssh.open", create=True) + def test__put_file_shell_space(self, mock_open): + with mock.patch.object(self.test_client, "run") as run_mock: + self.test_client._put_file_shell("localfile", + "filename with space", 0o42) + run_mock.assert_called_once_with( + 'cat > "filename with space"&& chmod -- 042 "filename with ' + 'space"', + stdin=mock_open.return_value.__enter__.return_value) + + @mock.patch("yardstick.ssh.open", create=True) + def test__put_file_shell_tilde(self, mock_open): + with mock.patch.object(self.test_client, "run") as run_mock: + self.test_client._put_file_shell("localfile", "~/remotefile", 0o42) + run_mock.assert_called_once_with( + 'cat > ~/"remotefile"&& chmod -- 042 ~/"remotefile"', + stdin=mock_open.return_value.__enter__.return_value) + + @mock.patch("yardstick.ssh.open", create=True) + def test__put_file_shell_tilde_spaces(self, mock_open): + with mock.patch.object(self.test_client, "run") as run_mock: + self.test_client._put_file_shell("localfile", "~/file with space", + 0o42) + run_mock.assert_called_once_with( + 'cat > ~/"file with space"&& chmod -- 042 ~/"file with space"', + stdin=mock_open.return_value.__enter__.return_value) @mock.patch("yardstick.ssh.os.stat") def test__put_file_sftp(self, mock_stat): |