Merge "Add test case description and task file for TC047"
[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 import mock
16 import unittest
17
18 from yardstick.benchmark.scenarios.availability.result_checker import baseresultchecker
19
20
21 @mock.patch('yardstick.benchmark.scenarios.availability.result_checker'
22     '.baseresultchecker.BaseResultChecker')
23 class ResultCheckerMgrTestCase(unittest.TestCase):
24
25     def setUp(self):
26         config = {
27             'checker_type': 'general-result-checker',
28             'key' : 'process-checker'
29         }
30
31         self.checker_configs = []
32         self.checker_configs.append(config)
33
34     def test_ResultCheckerMgr_setup_successful(self, mock_basechacer):
35         mgr_ins = baseresultchecker.ResultCheckerMgr()
36         mgr_ins.init_ResultChecker(self.checker_configs, None)
37         mgr_ins.verify()
38
39     def test_getitem_succeessful(self, mock_basechacer):
40         mgr_ins = baseresultchecker.ResultCheckerMgr()
41         mgr_ins.init_ResultChecker(self.checker_configs, None)
42         checker_ins = mgr_ins["process-checker"]
43
44     def test_getitem_fail(self, mock_basechacer):
45         mgr_ins = baseresultchecker.ResultCheckerMgr()
46         mgr_ins.init_ResultChecker(self.checker_configs, None)
47         with self.assertRaises(KeyError):
48             checker_ins = mgr_ins["checker-not-exist"]
49
50
51 class BaseResultCheckerTestCase(unittest.TestCase):
52
53     class ResultCheckeSimple(baseresultchecker.BaseResultChecker):
54         __result_checker__type__ = "ResultCheckeForTest"
55         def setup(self):
56             self.success = False
57
58         def verify(self):
59             return self.success
60
61     def setUp(self):
62         self.checker_cfg = {
63             'checker_type': 'general-result-checker',
64             'key' : 'process-checker'
65         }
66
67     def test_baseresultchecker_setup_verify_successful(self):
68         ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
69         ins.setup()
70         ins.verify()
71
72     def test_baseresultchecker_verfiy_pass(self):
73         ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
74         ins.setup()
75         ins.actualResult = True
76         ins.expectedResult = True
77         ins.verify()
78
79     def test_get_script_fullpath(self):
80         ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
81         path = ins.get_script_fullpath("test.bash")
82
83     def test_get_resultchecker_cls_successful(self):
84         baseresultchecker.BaseResultChecker.get_resultchecker_cls("ResultCheckeForTest")
85
86     def test_get_resultchecker_cls_fail(self):
87         with self.assertRaises(RuntimeError):
88             baseresultchecker.BaseResultChecker.get_resultchecker_cls("ResultCheckeNotExist")