Merge "Improve SampleVNF hugepages setup"
[yardstick.git] / yardstick / 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 import mock
13 import unittest
14
15 from yardstick.benchmark.scenarios.availability.result_checker import \
16     baseresultchecker
17
18
19 class ResultCheckerMgrTestCase(unittest.TestCase):
20
21     def setUp(self):
22         config = {
23             'checker_type': 'general-result-checker',
24             'key': 'process-checker'
25         }
26
27         self.checker_configs = []
28         self.checker_configs.append(config)
29
30         self.mgr_ins = baseresultchecker.ResultCheckerMgr()
31
32         self._mock_basechecker = mock.patch.object(baseresultchecker,
33                                                    'BaseResultChecker')
34         self.mock_basechecker = self._mock_basechecker.start()
35         self.addCleanup(self._stop_mock)
36
37     def _stop_mock(self):
38         self._mock_basechecker.stop()
39
40     def test_ResultCheckerMgr_setup_successful(self):
41         self.mgr_ins.verify()
42
43     def test_getitem_succeessful(self):
44         self.mgr_ins.init_ResultChecker(self.checker_configs, None)
45         _ = self.mgr_ins["process-checker"]
46
47     def test_getitem_fail(self):
48         self.mgr_ins.init_ResultChecker(self.checker_configs, None)
49         with self.assertRaises(KeyError):
50             _ = self.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         self.ins = baseresultchecker.BaseResultChecker(self.checker_cfg, None)
70
71     def test_baseresultchecker_setup_verify_successful(self):
72         self.ins.setup()
73         self.ins.verify()
74
75     def test_baseresultchecker_verfiy_pass(self):
76         self.ins.setup()
77         self.ins.actualResult = True
78         self.ins.expectedResult = True
79         self.ins.verify()
80
81     def test_get_script_fullpath(self):
82         self.ins.get_script_fullpath("test.bash")
83
84     def test_get_resultchecker_cls_successful(self):
85         baseresultchecker.BaseResultChecker.get_resultchecker_cls(
86             "ResultCheckeForTest")
87
88     def test_get_resultchecker_cls_fail(self):
89         with self.assertRaises(RuntimeError):
90             baseresultchecker.BaseResultChecker.get_resultchecker_cls(
91                 "ResultCheckeNotExist")