Merge "Modify how to disable logging in unit test."
[functest.git] / functest / tests / unit / ci / test_tier_handler.py
1 #!/usr/bin/env python
2
3 # All rights reserved. This program and the accompanying materials
4 # are made available under the terms of the Apache License, Version 2.0
5 # which accompanies this distribution, and is available at
6 # http://www.apache.org/licenses/LICENSE-2.0
7
8 import logging
9 import unittest
10
11 import mock
12
13 from functest.ci import tier_handler
14
15
16 class TierHandlerTesting(unittest.TestCase):
17
18     def setUp(self):
19         self.test = mock.Mock()
20         attrs = {'get_name.return_value': 'test_name'}
21         self.test.configure_mock(**attrs)
22
23         self.mock_depend = mock.Mock()
24         attrs = {'get_scenario.return_value': 'test_scenario',
25                  'get_installer.return_value': 'test_installer'}
26         self.mock_depend.configure_mock(**attrs)
27
28         self.tier = tier_handler.Tier('test_tier',
29                                       'test_order',
30                                       'test_ci_loop',
31                                       description='test_desc')
32         self.testcase = tier_handler.TestCase('test_name',
33                                               'true',
34                                               self.mock_depend,
35                                               'test_criteria',
36                                               'test_blocking',
37                                               'test_clean_flag',
38                                               description='test_desc')
39
40         self.dependency = tier_handler.Dependency('test_installer',
41                                                   'test_scenario')
42
43         self.testcase.str = self.testcase.__str__()
44         self.dependency.str = self.dependency.__str__()
45         self.tier.str = self.tier.__str__()
46
47     def test_split_text(self):
48         test_str = 'this is for testing'
49         self.assertEqual(tier_handler.split_text(test_str, 10),
50                          ['this is ', 'for ', 'testing '])
51
52     def test_add_test(self):
53         self.tier.add_test(self.test)
54         self.assertEqual(self.tier.tests_array,
55                          [self.test])
56
57     def test_get_tests(self):
58         self.tier.tests_array = [self.test]
59         self.assertEqual(self.tier.get_tests(),
60                          [self.test])
61
62     def test_get_test_names(self):
63         self.tier.tests_array = [self.test]
64         self.assertEqual(self.tier.get_test_names(),
65                          ['test_name'])
66
67     def test_get_test(self):
68         self.tier.tests_array = [self.test]
69         with mock.patch.object(self.tier, 'is_test',
70                                return_value=True):
71             self.assertEqual(self.tier.get_test('test_name'),
72                              self.test)
73
74     def test_get_test_missing_test(self):
75         self.tier.tests_array = [self.test]
76         with mock.patch.object(self.tier, 'is_test',
77                                return_value=False):
78             self.assertEqual(self.tier.get_test('test_name'),
79                              None)
80
81     def test_get_name(self):
82         self.assertEqual(self.tier.get_name(),
83                          'test_tier')
84
85     def test_get_order(self):
86         self.assertEqual(self.tier.get_order(),
87                          'test_order')
88
89     def test_get_ci_loop(self):
90         self.assertEqual(self.tier.get_ci_loop(),
91                          'test_ci_loop')
92
93     def test_testcase_is_none_present_item(self):
94         self.assertEqual(tier_handler.TestCase.is_none("item"),
95                          False)
96
97     def test_testcase_is_none_missing_item(self):
98         self.assertEqual(tier_handler.TestCase.is_none(None),
99                          True)
100
101     def test_testcase_is_compatible(self):
102         self.assertEqual(self.testcase.is_compatible('test_installer',
103                                                      'test_scenario'),
104                          True)
105
106     def test_testcase_is_compatible_missing_installer_scenario(self):
107         self.assertEqual(self.testcase.is_compatible('missing_installer',
108                                                      'test_scenario'),
109                          False)
110         self.assertEqual(self.testcase.is_compatible('test_installer',
111                                                      'missing_scenario'),
112                          False)
113
114     def test_testcase_get_name(self):
115         self.assertEqual(self.tier.get_name(),
116                          'test_tier')
117
118     def test_testcase_is_enabled(self):
119         self.assertEqual(self.testcase.is_enabled(),
120                          'true')
121
122     def test_testcase_get_criteria(self):
123         self.assertEqual(self.tier.get_order(),
124                          'test_order')
125
126     def test_testcase_is_blocking(self):
127         self.assertEqual(self.tier.get_ci_loop(),
128                          'test_ci_loop')
129
130     def test_dependency_get_installer(self):
131         self.assertEqual(self.dependency.get_installer(),
132                          'test_installer')
133
134     def test_dependency_get_scenario(self):
135         self.assertEqual(self.dependency.get_scenario(),
136                          'test_scenario')
137
138
139 if __name__ == "__main__":
140     logging.disable(logging.CRITICAL)
141     unittest.main(verbosity=2)