diff options
Diffstat (limited to 'tests')
-rwxr-xr-x | tests/ci/prepare_env.sh | 5 | ||||
-rw-r--r-- | tests/unit/benchmark/scenarios/parser/test_parser.py | 67 | ||||
-rw-r--r-- | tests/unit/test_cmd/__init__.py | 0 | ||||
-rw-r--r-- | tests/unit/test_cmd/commands/__init__.py | 0 | ||||
-rw-r--r-- | tests/unit/test_cmd/commands/test_env.py | 73 | ||||
-rw-r--r-- | tests/unit/test_cmd/commands/test_testcase.py | 29 | ||||
-rw-r--r-- | tests/unit/test_cmd/test_NSBperf.py | 120 |
7 files changed, 47 insertions, 247 deletions
diff --git a/tests/ci/prepare_env.sh b/tests/ci/prepare_env.sh index 44e2694f7..262b74c09 100755 --- a/tests/ci/prepare_env.sh +++ b/tests/ci/prepare_env.sh @@ -14,6 +14,8 @@ : ${INSTALLER_TYPE:='unknown'} : ${NODE_NAME:='unknown'} : ${EXTERNAL_NETWORK:='admin_floating_net'} +: ${USER_NAME:='ubuntu'} +: ${SSH_KEY:='/root/.ssh/id_rsa'} # Extract network name from EXTERNAL_NETWORK # e.g. EXTERNAL_NETWORK='ext-net;flat;192.168.0.2;192.168.0.253;192.168.0.1;192.168.0.0/24' @@ -97,6 +99,9 @@ if [ "$INSTALLER_TYPE" == "fuel" ]; then node_line_num=($(grep -n node[1-5] $pod_yaml | awk -F: '{print $1}')) node_ID=0; + # update 'user' and 'key_filename' according to CI env + sed -i "s|node_username|${USER_NAME}|;s|node_keyfile|${SSH_KEY}|" $pod_yaml; + if [[ ${controller_ips[0]} ]]; then sed -i "${node_line_num[0]}s/node1/node$((++node_ID))/;s/ip1/${controller_ips[0]}/" $pod_yaml; fi diff --git a/tests/unit/benchmark/scenarios/parser/test_parser.py b/tests/unit/benchmark/scenarios/parser/test_parser.py index 014d724a5..ee2bbc07d 100644 --- a/tests/unit/benchmark/scenarios/parser/test_parser.py +++ b/tests/unit/benchmark/scenarios/parser/test_parser.py @@ -9,50 +9,67 @@ # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -# Unittest for yardstick.benchmark.scenarios.parser.Parser - -from __future__ import absolute_import +import subprocess import unittest - import mock + from oslo_serialization import jsonutils from yardstick.benchmark.scenarios.parser import parser -@mock.patch('yardstick.benchmark.scenarios.parser.parser.subprocess') class ParserTestCase(unittest.TestCase): def setUp(self): - pass - - def test_parser_successful_setup(self, mock_subprocess): - - p = parser.Parser({}, {}) - mock_subprocess.call().return_value = 0 - p.setup() - self.assertTrue(p.setup_done) - - def test_parser_successful(self, mock_subprocess): args = { 'options': {'yangfile': '/root/yardstick/samples/yang.yaml', 'toscafile': '/root/yardstick/samples/tosca.yaml'}, } - p = parser.Parser(args, {}) + self.scenario = parser.Parser(scenario_cfg=args, context_cfg={}) + + self._mock_popen = mock.patch.object(subprocess, 'Popen') + self.mock_popen = self._mock_popen.start() + self._mock_call = mock.patch.object(subprocess, 'call') + self.mock_call = self._mock_call.start() + + self.addCleanup(self._stop_mock) + + def _stop_mock(self): + self._mock_popen.stop() + self._mock_call.stop() + + def test_setup_successful(self): + + self.mock_call.return_value = 0 + self.scenario.setup() + self.assertTrue(self.scenario.setup_done) + + def test_run_successful(self): + result = {} - mock_subprocess.call().return_value = 0 - sample_output = '{"yangtotosca": "success"}' - p.run(result) - expected_result = jsonutils.loads(sample_output) # pylint: disable=unused-variable + self.mock_popen().returncode = 0 + + expected_result = jsonutils.loads('{"yangtotosca": "success"}') + + self.scenario.run(result) + self.assertEqual(result, expected_result) + + def test_run_fail(self): + result = {} + + self.mock_popen().returncode = 1 + expected_result = jsonutils.loads('{"yangtotosca": "fail"}') + + self.scenario.run(result) + self.assertEqual(result, expected_result) - def test_parser_teardown_successful(self, mock_subprocess): + def test_teardown_successful(self): - p = parser.Parser({}, {}) - mock_subprocess.call().return_value = 0 - p.teardown() - self.assertTrue(p.teardown_done) + self.mock_call.return_value = 0 + self.scenario.teardown() + self.assertTrue(self.scenario.teardown_done) def main(): diff --git a/tests/unit/test_cmd/__init__.py b/tests/unit/test_cmd/__init__.py deleted file mode 100644 index e69de29bb..000000000 --- a/tests/unit/test_cmd/__init__.py +++ /dev/null diff --git a/tests/unit/test_cmd/commands/__init__.py b/tests/unit/test_cmd/commands/__init__.py deleted file mode 100644 index e69de29bb..000000000 --- a/tests/unit/test_cmd/commands/__init__.py +++ /dev/null diff --git a/tests/unit/test_cmd/commands/test_env.py b/tests/unit/test_cmd/commands/test_env.py deleted file mode 100644 index 13c3ed44a..000000000 --- a/tests/unit/test_cmd/commands/test_env.py +++ /dev/null @@ -1,73 +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): - # 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 deleted file mode 100644 index 7ef157c19..000000000 --- a/tests/unit/test_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/test_cmd/test_NSBperf.py b/tests/unit/test_cmd/test_NSBperf.py deleted file mode 100644 index 19eb0afa0..000000000 --- a/tests/unit/test_cmd/test_NSBperf.py +++ /dev/null @@ -1,120 +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, *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) |