Merge "Fix nsb_setup.sh script"
[yardstick.git] / yardstick / tests / unit / benchmark / scenarios / availability / test_scenario_general.py
1 ##############################################################################
2 # Copyright (c) 2016 Huan Li and others
3 # lihuansse@tongji.edu.cn
4 # All rights reserved. This program and the accompanying materials
5 # are made available under the terms of the Apache License, Version 2.0
6 # which accompanies this distribution, and is available at
7 # http://www.apache.org/licenses/LICENSE-2.0
8 ##############################################################################
9
10 import mock
11 import unittest
12
13 from yardstick.benchmark.scenarios.availability import scenario_general
14
15 class ScenarioGeneralTestCase(unittest.TestCase):
16
17     @mock.patch.object(scenario_general, 'Director')
18     def setUp(self, *args):
19         self.scenario_cfg = {
20             'type': "general_scenario",
21             'options': {
22                 'attackers': [{
23                     'fault_type': "general-attacker",
24                     'key': "kill-process"}],
25                 'monitors': [{
26                     'monitor_type': "general-monitor",
27                     'key': "service-status"}],
28                 'steps': [
29                     {
30                         'actionKey': "kill-process",
31                         'actionType': "attacker",
32                         'index': 1},
33                     {
34                         'actionKey': "service-status",
35                         'actionType': "monitor",
36                         'index': 2}]
37             }
38         }
39         self.instance = scenario_general.ScenarioGeneral(self.scenario_cfg, None)
40         self.instance.setup()
41         self.instance.director.verify.return_value = True
42
43     def test_scenario_general_all_successful(self):
44
45         ret = {}
46         self.instance.run(ret)
47         self.instance.teardown()
48         self.assertEqual(ret['sla_pass'], 1)
49
50     def test_scenario_general_exception(self):
51         self.instance.director.createActionPlayer.side_effect = KeyError('Wrong')
52         self.instance.director.data = {}
53         ret = {}
54         self.instance.run(ret)
55         self.instance.teardown()
56         self.assertEqual(ret['sla_pass'], 1)
57
58     def test_scenario_general_case_fail(self):
59         self.instance.director.verify.return_value = False
60         self.instance.director.data = {}
61         ret = {}
62         self.assertRaises(AssertionError, self.instance.run, ret)
63         self.instance.teardown()
64         self.assertEqual(ret['sla_pass'], 0)