set up mechanism to tun only runnable tests in CI based on scenario
[functest.git] / testcases / tests / TestFunctestUtils.py
1 import unittest
2 import os
3 import sys
4 import yaml
5
6 sys.path.append("../")
7 from functest_utils import getTestEnv, isTestRunnable, generateTestcaseList
8
9
10 class TestFunctestUtils(unittest.TestCase):
11
12     def setUp(self):
13         os.environ["INSTALLER_TYPE"] = "fuel"
14         os.environ["DEPLOY_SCENARIO"] = "os-odl_l3-ovs-ha"
15
16         global functest_yaml
17
18         with open("../config_functest.yaml") as f:
19             functest_yaml = yaml.safe_load(f)
20             f.close()
21
22     def test_getTestEnv(self):
23
24         env_test = getTestEnv('ovno', functest_yaml)
25         self.assertEqual(env_test, {'scenario': 'ocl'})
26
27         env_test = getTestEnv('doctor', functest_yaml)
28         self.assertEqual(env_test, {'installer': 'fuel'})
29
30         env_test = getTestEnv('promise', functest_yaml)
31         self.assertEqual(env_test, {'installer': '(fuel)|(joid)'})
32
33         env_test = getTestEnv('functest/tempest', functest_yaml)
34         self.assertEqual(env_test, None)
35
36         env_test = getTestEnv('functest/vims', functest_yaml)
37         self.assertEqual(env_test, None)
38
39         env_test = getTestEnv('functest/odl', functest_yaml)
40         self.assertEqual(env_test, {'scenario': 'odl'})
41
42         env_test = getTestEnv('functest/onos', functest_yaml)
43         self.assertEqual(env_test, {'scenario': 'onos'})
44
45         env_test = getTestEnv('policy-test', functest_yaml)
46         self.assertEqual(env_test, {'scenario': 'odl'})
47
48         env_test = getTestEnv('sdnvpn/odl-vpn_service-tests', functest_yaml)
49         self.assertEqual(env_test,
50                          {'installer': 'fuel', 'scenario': '(ovs)*(odl)'})
51
52         env_test = getTestEnv('sdnvpn/opnfv-yardstick-tc026-sdnvpn',
53                               functest_yaml)
54         self.assertEqual(env_test,
55                          {'installer': 'fuel', 'scenario': '(ovs)*(nosdn)'})
56
57         env_test = getTestEnv('foo', functest_yaml)
58         self.assertEqual(env_test, '')
59
60     def test_isTestRunnable(self):
61
62         test = isTestRunnable('ovno', functest_yaml)
63         self.assertFalse(test)
64
65         test = isTestRunnable('doctor', functest_yaml)
66         self.assertTrue(test)
67
68         test = isTestRunnable('promise', functest_yaml)
69         self.assertTrue(test)
70
71         test = isTestRunnable('functest/onos', functest_yaml)
72         self.assertFalse(test)
73
74         test = isTestRunnable('functest/odl', functest_yaml)
75         self.assertTrue(test)
76
77         test = isTestRunnable('functest/vping', functest_yaml)
78         self.assertTrue(test)
79
80         test = isTestRunnable('functest/tempest', functest_yaml)
81         self.assertTrue(test)
82
83         test = isTestRunnable('functest/rally', functest_yaml)
84         self.assertTrue(test)
85
86         test = isTestRunnable('functest/vims', functest_yaml)
87         self.assertTrue(test)
88
89         test = isTestRunnable('sdnvpn/odl-vpn_service-tests',
90                               functest_yaml)
91         self.assertTrue(test)
92
93         test = isTestRunnable('sdnvpn/opnfv-yardstick-tc026-sdnvpn',
94                               functest_yaml)
95         self.assertFalse(test)
96
97     def test_generateTestcaseList(self):
98
99         test = generateTestcaseList(functest_yaml)
100
101         expected_list = "vping tempest odl doctor promise policy-test odl-vpn_service-tests vims rally "
102         self.assertEqual(test, expected_list)
103
104     def tearDown(self):
105         os.environ["INSTALLER_TYPE"] = ""
106         os.environ["DEPLOY_SCENARIO"] = ""
107
108
109 if __name__ == '__main__':
110     unittest.main()
111