Merge "heat: close file before parsing template"
[yardstick.git] / tests / unit / benchmark / scenarios / availability / test_baseresultchecker.py
1 #!/usr/bin/env python
2
3 ##############################################################################
4 # Copyright (c) 2016 Huan Li and others
5 # lihuansse@tongji.edu.cn
6 # All rights reserved. This program and the accompanying materials
7 # are made available under the terms of the Apache License, Version 2.0
8 # which accompanies this distribution, and is available at
9 # http://www.apache.org/licenses/LICENSE-2.0
10 ##############################################################################
11
12 # Unittest for yardstick.benchmark.scenarios.availability.result_checker
13 # .baseresultchecker
14
15 from __future__ import absolute_import
16 import mock
17 import unittest
18
19 from yardstick.benchmark.scenarios.availability.result_checker import \
20     baseresultchecker
21
22
23 @mock.patch('yardstick.benchmark.scenarios.availability.result_checker'
24             '.baseresultchecker.BaseResultChecker')
25 class ResultCheckerMgrTestCase(unittest.TestCase):
26
27     def setUp(self):
28         config = {
29             'checker_type': 'general-result-checker',
30             'key': 'process-checker'
31         }
32
33         self.checker_configs = []
34         self.checker_configs.append(config)
35
36     def test_ResultCheckerMgr_setup_successful(self, mock_basechacer):
37         mgr_ins = baseresultchecker.ResultCheckerMgr()
38         mgr_ins.init_ResultChecker(self.checker_configs, None)
39         mgr_ins.verify()
40
41     def test_getitem_succeessful(self, mock_basechacer):
42         mgr_ins = baseresultchecker.ResultCheckerMgr()
43         mgr_ins.init_ResultChecker(self.checker_configs, None)
44         checker_ins = mgr_ins["process-checker"]
45
46     def test_getitem_fail(self, mock_basechacer):
47         mgr_ins = baseresultchecker.ResultCheckerMgr()
48         mgr_ins.init_ResultChecker(self.checker_configs, None)
49         with self.assertRaises(KeyError):
50             checker_ins = mgr_ins["checker-not-exist"]
51
52
53 class BaseResultCheckerTestCase(unittest.TestCase):
54
55     class ResultCheckeSimple(baseresultchecker.BaseResultChecker):
56         __result_checker__type__ = "ResultCheckeForTest"
57
58         def setup(self):
59             self.success = False
60
61         def verify(self):
62             return self.success
63
64     def setUp(self):
65         self.checker_cfg = {
66             'checker_type': 'general-result-checker',
67             'key': 'process-checker'
68         }
69
70     def test_baseresultchecker_setup_verify_successful(self):
71         ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
72         ins.setup()
73         ins.verify()
74
75     def test_baseresultchecker_verfiy_pass(self):
76         ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
77         ins.setup()
78         ins.actualResult = True
79         ins.expectedResult = True
80         ins.verify()
81
82     def test_get_script_fullpath(self):
83         ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
84         path = ins.get_script_fullpath("test.bash")
85
86     def test_get_resultchecker_cls_successful(self):
87         baseresultchecker.BaseResultChecker.get_resultchecker_cls(
88             "ResultCheckeForTest")
89
90     def test_get_resultchecker_cls_fail(self):
91         with self.assertRaises(RuntimeError):
92             baseresultchecker.BaseResultChecker.get_resultchecker_cls(
93                 "ResultCheckeNotExist")