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
8 # pylint: disable=missing-docstring
15 from functest.ci import tier_handler
18 class TierHandlerTesting(unittest.TestCase):
19 # pylint: disable=too-many-public-methods
22 self.test = mock.Mock()
23 attrs = {'get_name.return_value': 'test_name'}
24 self.test.configure_mock(**attrs)
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 self.tier = tier_handler.Tier(
30 'test_tier', 'test_order', 'test_ci_loop', description='test_desc')
31 self.testcase = tier_handler.TestCase(
32 'test_name', 'true', self.mock_depend, 'test_criteria',
33 True, description='test_desc', project='project_name')
34 self.dependency = tier_handler.Dependency(
35 'test_installer', 'test_scenario')
36 self.testcase.str = self.testcase.__str__()
37 self.dependency.str = self.dependency.__str__()
38 self.tier.str = self.tier.__str__()
40 def test_split_text(self):
41 test_str = 'this is for testing'
42 self.assertEqual(tier_handler.split_text(test_str, 10),
43 ['this is ', 'for ', 'testing '])
45 def test_add_test(self):
46 self.tier.add_test(self.test)
47 self.assertEqual(self.tier.tests_array, [self.test])
49 def test_get_skipped_test1(self):
50 self.assertEqual(self.tier.get_skipped_test(), [])
52 def test_get_skipped_test2(self):
53 self.tier.skip_test(self.test)
54 self.assertEqual(self.tier.get_skipped_test(), [self.test])
56 def test_get_tests(self):
57 self.tier.tests_array = [self.test]
58 self.assertEqual(self.tier.get_tests(), [self.test])
60 def test_get_test_names(self):
61 self.tier.tests_array = [self.test]
62 self.assertEqual(self.tier.get_test_names(), ['test_name'])
64 def test_get_test(self):
65 self.tier.tests_array = [self.test]
66 with mock.patch.object(self.tier, 'is_test', return_value=True):
67 self.assertEqual(self.tier.get_test('test_name'), self.test)
69 def test_get_test_missing_test(self):
70 self.tier.tests_array = [self.test]
71 with mock.patch.object(self.tier, 'is_test', return_value=False):
72 self.assertEqual(self.tier.get_test('test_name'), None)
74 def test_get_name(self):
75 self.assertEqual(self.tier.get_name(), 'test_tier')
77 def test_get_order(self):
78 self.assertEqual(self.tier.get_order(), 'test_order')
80 def test_get_ci_loop(self):
81 self.assertEqual(self.tier.get_ci_loop(), 'test_ci_loop')
83 def test_testcase_is_none_in_item(self):
84 self.assertEqual(tier_handler.TestCase.is_none("item"), False)
86 def test_testcase_is_none_no_item(self):
87 self.assertEqual(tier_handler.TestCase.is_none(None), True)
89 def test_testcase_is_compatible(self):
91 self.testcase.is_compatible('test_installer', 'test_scenario'),
94 def test_testcase_is_compatible_2(self):
96 self.testcase.is_compatible('missing_installer', 'test_scenario'),
99 self.testcase.is_compatible('test_installer', 'missing_scenario'),
102 @mock.patch('re.search', side_effect=TypeError)
103 def test_testcase_is_compatible3(self, *args):
105 self.testcase.is_compatible('test_installer', 'test_scenario'),
107 args[0].assert_called_once_with('test_installer', 'test_installer')
109 def test_testcase_get_name(self):
110 self.assertEqual(self.tier.get_name(), 'test_tier')
112 def test_testcase_is_enabled(self):
113 self.assertEqual(self.testcase.is_enabled(), 'true')
115 def test_testcase_get_criteria(self):
116 self.assertEqual(self.testcase.get_criteria(), 'test_criteria')
118 def test_testcase_is_blocking(self):
119 self.assertTrue(self.testcase.is_blocking())
121 def test_testcase_get_project(self):
122 self.assertEqual(self.testcase.get_project(), 'project_name')
124 def test_testcase_get_order(self):
125 self.assertEqual(self.tier.get_order(), 'test_order')
127 def test_testcase_get_ci_loop(self):
128 self.assertEqual(self.tier.get_ci_loop(), 'test_ci_loop')
130 def test_dependency_get_installer(self):
131 self.assertEqual(self.dependency.get_installer(), 'test_installer')
133 def test_dependency_get_scenario(self):
134 self.assertEqual(self.dependency.get_scenario(), 'test_scenario')
137 if __name__ == "__main__":
138 logging.disable(logging.CRITICAL)
139 unittest.main(verbosity=2)