From 986ae407906b479dd8530df798a6caca8b1b8cc4 Mon Sep 17 00:00:00 2001 From: Ross Brattain Date: Mon, 14 Aug 2017 09:54:51 -0700 Subject: Rename test/unit/cmd directory Renamed test/unit/cmd directory to test/unit/test_cmd, in order to avoid importing errors during the execution of unit tests. This directory name collides with Python "cmd" library. Change-Id: Ie06d58d4faace33df684c8e511a398aa0667b098 Signed-off-by: Rodolfo Alonso Hernandez --- tests/unit/cmd/__init__.py | 0 tests/unit/cmd/commands/__init__.py | 0 tests/unit/cmd/commands/test_env.py | 69 --------------- tests/unit/cmd/commands/test_testcase.py | 29 ------- tests/unit/cmd/test_NSBperf.py | 119 ------------------------- tests/unit/test_cmd/__init__.py | 0 tests/unit/test_cmd/commands/__init__.py | 0 tests/unit/test_cmd/commands/test_env.py | 73 ++++++++++++++++ tests/unit/test_cmd/commands/test_testcase.py | 29 +++++++ tests/unit/test_cmd/test_NSBperf.py | 120 ++++++++++++++++++++++++++ 10 files changed, 222 insertions(+), 217 deletions(-) delete mode 100644 tests/unit/cmd/__init__.py delete mode 100644 tests/unit/cmd/commands/__init__.py delete mode 100644 tests/unit/cmd/commands/test_env.py delete mode 100644 tests/unit/cmd/commands/test_testcase.py delete mode 100644 tests/unit/cmd/test_NSBperf.py create mode 100644 tests/unit/test_cmd/__init__.py create mode 100644 tests/unit/test_cmd/commands/__init__.py create mode 100644 tests/unit/test_cmd/commands/test_env.py create mode 100644 tests/unit/test_cmd/commands/test_testcase.py create mode 100644 tests/unit/test_cmd/test_NSBperf.py diff --git a/tests/unit/cmd/__init__.py b/tests/unit/cmd/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/unit/cmd/commands/__init__.py b/tests/unit/cmd/commands/__init__.py deleted file mode 100644 index e69de29bb..000000000 diff --git a/tests/unit/cmd/commands/test_env.py b/tests/unit/cmd/commands/test_env.py deleted file mode 100644 index 73cd5af47..000000000 --- a/tests/unit/cmd/commands/test_env.py +++ /dev/null @@ -1,69 +0,0 @@ -############################################################################## -# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -from __future__ import absolute_import -import unittest -import mock -import uuid - -from yardstick.cmd.commands.env import EnvCommand - - -class EnvCommandTestCase(unittest.TestCase): - - @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(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': 'create_grafana'} - 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(): - unittest.main() - - -if __name__ == '__main__': - main() diff --git a/tests/unit/cmd/commands/test_testcase.py b/tests/unit/cmd/commands/test_testcase.py deleted file mode 100644 index 7ef157c19..000000000 --- a/tests/unit/cmd/commands/test_testcase.py +++ /dev/null @@ -1,29 +0,0 @@ -############################################################################## -# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. -# -# All rights reserved. This program and the accompanying materials -# are made available under the terms of the Apache License, Version 2.0 -# which accompanies this distribution, and is available at -# http://www.apache.org/licenses/LICENSE-2.0 -############################################################################## -import unittest -from mock import patch - -from yardstick.cmd.commands.testcase import TestcaseCommands - - -class TestcaseCommandsUT(unittest.TestCase): - @patch('yardstick.cmd.commands.testcase.TestcaseCommands._format_print') - @patch('yardstick.cmd.commands.client') - def test_do_list(self, mock_client, mock_print): - mock_client.get.return_value = {'result': []} - TestcaseCommands().do_list({}) - self.assertTrue(mock_print.called) - - -def main(): - unittest.main() - - -if __name__ == '__main__': - main() diff --git a/tests/unit/cmd/test_NSBperf.py b/tests/unit/cmd/test_NSBperf.py deleted file mode 100644 index e1b4da7fc..000000000 --- a/tests/unit/cmd/test_NSBperf.py +++ /dev/null @@ -1,119 +0,0 @@ -#!/usr/bin/env python - -# Copyright (c) 2016-2017 Intel Corporation -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. -# - -from __future__ import absolute_import -import unittest -import mock -import subprocess -import os - -from yardstick.cmd.NSBperf import YardstickNSCli -from yardstick.cmd import NSBperf - - -@mock.patch('six.moves.input', return_value='0') -class TestHandler(unittest.TestCase): - def test_handler(self, test): - subprocess.call = mock.Mock(return_value=0) - self.assertRaises(SystemExit, NSBperf.sigint_handler) - - -class TestYardstickNSCli(unittest.TestCase): - def test___init__(self): - yardstick_ns_cli = YardstickNSCli() - self.assertIsNotNone(yardstick_ns_cli) - - def test_generate_final_report(self): - yardstick_ns_cli = YardstickNSCli() - test_case = "tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml" - if os.path.isfile("/tmp/yardstick.out"): - os.remove('/tmp/yardstick.out') - self.assertIsNone(yardstick_ns_cli.generate_final_report(test_case)) - - def test_generate_kpi_results(self): - yardstick_ns_cli = YardstickNSCli() - tkey = "cpu" - tgen = {"cpu": {"ipc": 0}} - self.assertIsNone(yardstick_ns_cli.generate_kpi_results(tkey, tgen)) - - def test_generate_nfvi_results(self): - yardstick_ns_cli = YardstickNSCli() - nfvi = {"collect_stats": {"cpu": {"ipc": 0, "Hz": 2.6}}} - self.assertIsNone(yardstick_ns_cli.generate_nfvi_results(nfvi)) - - def test_handle_list_options(self): - yardstick_ns_cli = YardstickNSCli() - CLI_PATH = os.path.dirname(os.path.realpath(__file__)) - repo_dir = CLI_PATH + "/../../" - test_path = os.path.join(repo_dir, "../samples/vnf_samples/nsut/") - args = {"list_vnfs": True, "list": False} - self.assertRaises(SystemExit, yardstick_ns_cli.handle_list_options, - args, test_path) - args = {"list_vnfs": False, "list": True} - self.assertRaises(SystemExit, - yardstick_ns_cli.handle_list_options, - args, test_path) - - def test_main(self): - yardstick_ns_cli = YardstickNSCli() - yardstick_ns_cli.parse_arguments = mock.Mock(return_value=0) - yardstick_ns_cli.handle_list_options = mock.Mock(return_value=0) - yardstick_ns_cli.terminate_if_less_options = mock.Mock(return_value=0) - yardstick_ns_cli.run_test = mock.Mock(return_value=0) - self.assertIsNone(yardstick_ns_cli.main()) - - def test_parse_arguments(self): - yardstick_ns_cli = YardstickNSCli() - self.assertRaises(SystemExit, yardstick_ns_cli.parse_arguments) - - def test_run_test(self): - cur_dir = os.getcwd() - CLI_PATH = os.path.dirname(os.path.realpath(__file__)) - YARDSTICK_REPOS_DIR = os.path.join(CLI_PATH + "/../../") - test_path = os.path.join(YARDSTICK_REPOS_DIR, - "../samples/vnf_samples/nsut/") - yardstick_ns_cli = YardstickNSCli() - subprocess.check_output = mock.Mock(return_value=0) - args = {"vnf": "vpe", - "test": "tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml"} - self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path)) - os.chdir(cur_dir) - args = {"vnf": "vpe1"} - self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path)) - os.chdir(cur_dir) - args = {"vnf": "vpe", - "test": "tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml."} - self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path)) - os.chdir(cur_dir) - args = [] - self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path)) - os.chdir(cur_dir) - - def test_terminate_if_less_options(self): - yardstick_ns_cli = YardstickNSCli() - args = {"vnf": False} - self.assertRaises(SystemExit, - yardstick_ns_cli.terminate_if_less_options, args) - - def test_validate_input(self): - yardstick_ns_cli = YardstickNSCli() - self.assertEqual(1, yardstick_ns_cli.validate_input("", 4)) - NSBperf.input = lambda _: 'yes' - self.assertEqual(1, yardstick_ns_cli.validate_input(5, 4)) - subprocess.call = mock.Mock(return_value=0) - self.assertEqual(0, yardstick_ns_cli.validate_input(2, 4)) - subprocess.call = mock.Mock(return_value=0) diff --git a/tests/unit/test_cmd/__init__.py b/tests/unit/test_cmd/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/unit/test_cmd/commands/__init__.py b/tests/unit/test_cmd/commands/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/tests/unit/test_cmd/commands/test_env.py b/tests/unit/test_cmd/commands/test_env.py new file mode 100644 index 000000000..13c3ed44a --- /dev/null +++ b/tests/unit/test_cmd/commands/test_env.py @@ -0,0 +1,73 @@ +############################################################################## +# Copyright (c) 2016 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +from __future__ import absolute_import +import unittest +import mock +import uuid + +from yardstick.cmd.commands.env import EnvCommand + + +class EnvCommandTestCase(unittest.TestCase): + + @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(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': 'create_grafana'} + 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): + # pylint: disable=unused-argument + # NOTE(ralonsoh): the pylint exception must be removed. The mocked + # command call must be tested. + 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: # pylint: disable=broad-except + # NOTE(ralonsoh): try to reduce the scope of this exception. + self.assertIsInstance(e, IndexError) + + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tests/unit/test_cmd/commands/test_testcase.py b/tests/unit/test_cmd/commands/test_testcase.py new file mode 100644 index 000000000..7ef157c19 --- /dev/null +++ b/tests/unit/test_cmd/commands/test_testcase.py @@ -0,0 +1,29 @@ +############################################################################## +# Copyright (c) 2017 Huawei Technologies Co.,Ltd and others. +# +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +import unittest +from mock import patch + +from yardstick.cmd.commands.testcase import TestcaseCommands + + +class TestcaseCommandsUT(unittest.TestCase): + @patch('yardstick.cmd.commands.testcase.TestcaseCommands._format_print') + @patch('yardstick.cmd.commands.client') + def test_do_list(self, mock_client, mock_print): + mock_client.get.return_value = {'result': []} + TestcaseCommands().do_list({}) + self.assertTrue(mock_print.called) + + +def main(): + unittest.main() + + +if __name__ == '__main__': + main() diff --git a/tests/unit/test_cmd/test_NSBperf.py b/tests/unit/test_cmd/test_NSBperf.py new file mode 100644 index 000000000..19eb0afa0 --- /dev/null +++ b/tests/unit/test_cmd/test_NSBperf.py @@ -0,0 +1,120 @@ +#!/usr/bin/env python + +# Copyright (c) 2016-2017 Intel Corporation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +from __future__ import absolute_import +import unittest +import mock +import subprocess +import os + +from yardstick.cmd.NSBperf import YardstickNSCli +from yardstick.cmd import NSBperf + + +@mock.patch('six.moves.input', return_value='0') +class TestHandler(unittest.TestCase): + + def test_handler(self, *args): + subprocess.call = mock.Mock(return_value=0) + self.assertRaises(SystemExit, NSBperf.sigint_handler) + + +class TestYardstickNSCli(unittest.TestCase): + def test___init__(self): + yardstick_ns_cli = YardstickNSCli() + self.assertIsNotNone(yardstick_ns_cli) + + def test_generate_final_report(self): + yardstick_ns_cli = YardstickNSCli() + test_case = "tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml" + if os.path.isfile("/tmp/yardstick.out"): + os.remove('/tmp/yardstick.out') + self.assertIsNone(yardstick_ns_cli.generate_final_report(test_case)) + + def test_generate_kpi_results(self): + yardstick_ns_cli = YardstickNSCli() + tkey = "cpu" + tgen = {"cpu": {"ipc": 0}} + self.assertIsNone(yardstick_ns_cli.generate_kpi_results(tkey, tgen)) + + def test_generate_nfvi_results(self): + yardstick_ns_cli = YardstickNSCli() + nfvi = {"collect_stats": {"cpu": {"ipc": 0, "Hz": 2.6}}} + self.assertIsNone(yardstick_ns_cli.generate_nfvi_results(nfvi)) + + def test_handle_list_options(self): + yardstick_ns_cli = YardstickNSCli() + CLI_PATH = os.path.dirname(os.path.realpath(__file__)) + repo_dir = CLI_PATH + "/../../" + test_path = os.path.join(repo_dir, "../samples/vnf_samples/nsut/") + args = {"list_vnfs": True, "list": False} + self.assertRaises(SystemExit, yardstick_ns_cli.handle_list_options, + args, test_path) + args = {"list_vnfs": False, "list": True} + self.assertRaises(SystemExit, + yardstick_ns_cli.handle_list_options, + args, test_path) + + def test_main(self): + yardstick_ns_cli = YardstickNSCli() + yardstick_ns_cli.parse_arguments = mock.Mock(return_value=0) + yardstick_ns_cli.handle_list_options = mock.Mock(return_value=0) + yardstick_ns_cli.terminate_if_less_options = mock.Mock(return_value=0) + yardstick_ns_cli.run_test = mock.Mock(return_value=0) + self.assertIsNone(yardstick_ns_cli.main()) + + def test_parse_arguments(self): + yardstick_ns_cli = YardstickNSCli() + self.assertRaises(SystemExit, yardstick_ns_cli.parse_arguments) + + def test_run_test(self): + cur_dir = os.getcwd() + CLI_PATH = os.path.dirname(os.path.realpath(__file__)) + YARDSTICK_REPOS_DIR = os.path.join(CLI_PATH + "/../../") + test_path = os.path.join(YARDSTICK_REPOS_DIR, + "../samples/vnf_samples/nsut/") + yardstick_ns_cli = YardstickNSCli() + subprocess.check_output = mock.Mock(return_value=0) + args = {"vnf": "vpe", + "test": "tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml"} + self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path)) + os.chdir(cur_dir) + args = {"vnf": "vpe1"} + self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path)) + os.chdir(cur_dir) + args = {"vnf": "vpe", + "test": "tc_baremetal_rfc2544_ipv4_1flow_1518B.yaml."} + self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path)) + os.chdir(cur_dir) + args = [] + self.assertEqual(None, yardstick_ns_cli.run_test(args, test_path)) + os.chdir(cur_dir) + + def test_terminate_if_less_options(self): + yardstick_ns_cli = YardstickNSCli() + args = {"vnf": False} + self.assertRaises(SystemExit, + yardstick_ns_cli.terminate_if_less_options, args) + + def test_validate_input(self): + yardstick_ns_cli = YardstickNSCli() + self.assertEqual(1, yardstick_ns_cli.validate_input("", 4)) + NSBperf.input = lambda _: 'yes' + self.assertEqual(1, yardstick_ns_cli.validate_input(5, 4)) + subprocess.call = mock.Mock(return_value=0) + self.assertEqual(0, yardstick_ns_cli.validate_input(2, 4)) + subprocess.call = mock.Mock(return_value=0) -- cgit 1.2.3-korg