diff options
author | lihuan <lihuansse@tongji.edu.cn> | 2016-07-06 17:29:00 +0800 |
---|---|---|
committer | lihuan <lihuansse@tongji.edu.cn> | 2016-07-08 15:01:02 +0800 |
commit | 1eb35349d2bedacc75aff28b0883995794682395 (patch) | |
tree | dd402671a0dc52d8cf7a28385159693037689ec0 /tests/unit/benchmark/scenarios/availability/test_scenario_general.py | |
parent | 55af4f473d60838b57b14670423717b7f2e901ea (diff) |
Creating Director and related codes.
Add a new scenario type 'ScenarioGeneral' that support orchestrating general HA test scenarios.
Director, ActionPlayer and RollbackPlayer are uesed to execute the test scenario (or test flow).
JIRA: YARDSTICK-288
Change-Id: Ied2ccd4712f3c3efde6771bfa4538c1e9e137c11
Signed-off-by: lihuan <lihuansse@tongji.edu.cn>
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 |