aboutsummaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
Diffstat (limited to 'tests')
-rwxr-xr-xtests/ci/prepare_env.sh5
-rw-r--r--tests/unit/benchmark/scenarios/parser/test_parser.py67
-rw-r--r--tests/unit/test_cmd/__init__.py0
-rw-r--r--tests/unit/test_cmd/commands/__init__.py0
-rw-r--r--tests/unit/test_cmd/commands/test_env.py73
-rw-r--r--tests/unit/test_cmd/commands/test_testcase.py29
-rw-r--r--tests/unit/test_cmd/test_NSBperf.py120
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)