diff options
author | liang gao <jean.gaoliang@huawei.com> | 2016-07-11 03:44:49 +0000 |
---|---|---|
committer | Gerrit Code Review <gerrit@172.30.200.206> | 2016-07-11 03:44:49 +0000 |
commit | 567694e4db2d0776db6c115b98f54a4737e52124 (patch) | |
tree | 1bc1b9ba701e0dc1933230052ade68b9a8663258 /tests/unit/benchmark/scenarios/availability/test_scenario_general.py | |
parent | de26decf97c64b4a9a624d0acbf3882af4916f39 (diff) | |
parent | 1eb35349d2bedacc75aff28b0883995794682395 (diff) |
Merge "Creating Director and related codes."
Diffstat (limited to 'tests/unit/benchmark/scenarios/availability/test_scenario_general.py')
-rw-r--r-- | tests/unit/benchmark/scenarios/availability/test_scenario_general.py | 65 |
1 files changed, 65 insertions, 0 deletions
diff --git a/tests/unit/benchmark/scenarios/availability/test_scenario_general.py b/tests/unit/benchmark/scenarios/availability/test_scenario_general.py new file mode 100644 index 000000000..c17edea45 --- /dev/null +++ b/tests/unit/benchmark/scenarios/availability/test_scenario_general.py @@ -0,0 +1,65 @@ +#!/usr/bin/env python + +############################################################################## +# Copyright (c) 2016 Huan Li and others +# lihuansse@tongji.edu.cn +# 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 +############################################################################## + +# Unittest for yardstick.benchmark.scenarios.availability.scenario_general + +import mock +import unittest + +from yardstick.benchmark.scenarios.availability.scenario_general import ScenarioGeneral + + +@mock.patch('yardstick.benchmark.scenarios.availability.scenario_general.Director') +class ScenarioGeneralTestCase(unittest.TestCase): + + def setUp(self): + self.scenario_cfg = { + 'type': "general_scenario", + 'options': { + 'attackers':[{ + 'fault_type': "general-attacker", + 'key': "kill-process"}], + 'monitors': [{ + 'monitor_type': "general-monitor", + 'key': "service_status"}], + 'steps':[ + { + 'actionKey': "kill-process", + 'actionType': "attacker", + 'index': 1}, + { + 'actionKey': "service_status", + 'actionType': "monitor", + 'index': 2}] + } + } + + def test_scenario_general_all_successful(self, mock_director): + ins = ScenarioGeneral(self.scenario_cfg, None) + ins.setup() + ins.run(None) + ins.teardown() + + def test_scenario_general_exception(self, mock_director): + ins = ScenarioGeneral(self.scenario_cfg, None) + mock_obj = mock.Mock() + mock_obj.createActionPlayer.side_effect = KeyError('Wrong') + ins.director = mock_obj + ins.run(None) + ins.teardown() + + def test_scenario_general_case_fail(self, mock_director): + ins = ScenarioGeneral(self.scenario_cfg, None) + mock_obj = mock.Mock() + mock_obj.verify.return_value = False + ins.director = mock_obj + ins.run(None) + ins.teardown()
\ No newline at end of file |