Merge "Assign the wrapped function’s attributes"
[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     logging.disable(logging.CRITICAL)
19
20     def setUp(self):
21         self.test = mock.Mock()
22         attrs = {'get_name.return_value': 'test_name'}
23         self.test.configure_mock(**attrs)
24
25         self.mock_depend = mock.Mock()
26         attrs = {'get_scenario.return_value': 'test_scenario',
27                  'get_installer.return_value': 'test_installer'}
28         self.mock_depend.configure_mock(**attrs)
29
30         self.tier = tier_handler.Tier('test_tier',
31                                       'test_order',
32                                       'test_ci_loop',
33                                       description='test_desc')
34         self.testcase = tier_handler.TestCase('test_name',
35                                               'true',
36                                               self.mock_depend,
37                                               'test_criteria',
38                                               'test_blocking',
39                                               'test_clean_flag',
40                                               description='test_desc')
41
42         self.dependency = tier_handler.Dependency('test_installer',
43                                                   'test_scenario')
44
45         self.testcase.str = self.testcase.__str__()
46         self.dependency.str = self.dependency.__str__()
47         self.tier.str = self.tier.__str__()
48
49     def test_split_text(self):
50         test_str = 'this is for testing'
51         self.assertEqual(tier_handler.split_text(test_str, 10),
52                          ['this is ', 'for ', 'testing '])
53
54     def test_add_test(self):
55         self.tier.add_test(self.test)
56         self.assertEqual(self.tier.tests_array,
57                          [self.test])
58
59     def test_get_tests(self):
60         self.tier.tests_array = [self.test]
61         self.assertEqual(self.tier.get_tests(),
62                          [self.test])
63
64     def test_get_test_names(self):
65         self.tier.tests_array = [self.test]
66         self.assertEqual(self.tier.get_test_names(),
67                          ['test_name'])
68
69     def test_get_test(self):
70         self.tier.tests_array = [self.test]
71         with mock.patch.object(self.tier, 'is_test',
72                                return_value=True):
73             self.assertEqual(self.tier.get_test('test_name'),
74                              self.test)
75
76     def test_get_test_missing_test(self):
77         self.tier.tests_array = [self.test]
78         with mock.patch.object(self.tier, 'is_test',
79                                return_value=False):
80             self.assertEqual(self.tier.get_test('test_name'),
81                              None)
82
83     def test_get_name(self):
84         self.assertEqual(self.tier.get_name(),
85                          'test_tier')
86
87     def test_get_order(self):
88         self.assertEqual(self.tier.get_order(),
89                          'test_order')
90
91     def test_get_ci_loop(self):
92         self.assertEqual(self.tier.get_ci_loop(),
93                          'test_ci_loop')
94
95     def test_testcase_is_none_present_item(self):
96         self.assertEqual(tier_handler.TestCase.is_none("item"),
97                          False)
98
99     def test_testcase_is_none_missing_item(self):
100         self.assertEqual(tier_handler.TestCase.is_none(None),
101                          True)
102
103     def test_testcase_is_compatible(self):
104         self.assertEqual(self.testcase.is_compatible('test_installer',
105                                                      'test_scenario'),
106                          True)
107
108     def test_testcase_is_compatible_missing_installer_scenario(self):
109         self.assertEqual(self.testcase.is_compatible('missing_installer',
110                                                      'test_scenario'),
111                          False)
112         self.assertEqual(self.testcase.is_compatible('test_installer',
113                                                      'missing_scenario'),
114                          False)
115
116     def test_testcase_get_name(self):
117         self.assertEqual(self.tier.get_name(),
118                          'test_tier')
119
120     def test_testcase_is_enabled(self):
121         self.assertEqual(self.testcase.is_enabled(),
122                          'true')
123
124     def test_testcase_get_criteria(self):
125         self.assertEqual(self.tier.get_order(),
126                          'test_order')
127
128     def test_testcase_is_blocking(self):
129         self.assertEqual(self.tier.get_ci_loop(),
130                          'test_ci_loop')
131
132     def test_dependency_get_installer(self):
133         self.assertEqual(self.dependency.get_installer(),
134                          'test_installer')
135
136     def test_dependency_get_scenario(self):
137         self.assertEqual(self.dependency.get_scenario(),
138                          'test_scenario')
139
140
141 if __name__ == "__main__":
142     unittest.main(verbosity=2)