1 # Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
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
7 # http://www.apache.org/licenses/LICENSE-2.0
13 from snaps.openstack.os_credentials import OSCreds
15 from functest.core.testcase import TestCase
16 from functest.opnfv_tests.openstack.snaps import (connection_check, api_check,
20 class ConnectionCheckTesting(unittest.TestCase):
22 Ensures the VPingUserdata class can run in Functest. This test does not
23 actually connect with an OpenStack pod.
27 self.os_creds = OSCreds(
28 username='user', password='pass',
29 auth_url='http://foo.com:5000/v3', project_name='bar')
31 self.connection_check = connection_check.ConnectionCheck(
32 os_creds=self.os_creds, ext_net_name='foo')
34 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
35 'add_openstack_client_tests')
36 def test_run_success(self, add_os_client_tests):
37 result = mock.MagicMock(name='unittest.TextTestResult')
41 with mock.patch('unittest.TextTestRunner.run', return_value=result):
42 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
43 self.assertEquals(TestCase.EX_OK,
44 self.connection_check.is_successful())
46 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
47 'add_openstack_client_tests')
48 def test_run_1_of_100_failures(self, add_os_client_tests):
49 result = mock.MagicMock(name='unittest.TextTestResult')
51 result.failures = ['foo']
53 with mock.patch('unittest.TextTestRunner.run', return_value=result):
54 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
55 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
56 self.connection_check.is_successful())
58 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
59 'add_openstack_client_tests')
60 def test_run_1_of_100_failures_within_criteria(self, add_os_client_tests):
61 self.connection_check.criteria = 90
62 result = mock.MagicMock(name='unittest.TextTestResult')
64 result.failures = ['foo']
66 with mock.patch('unittest.TextTestRunner.run', return_value=result):
67 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
68 self.assertEquals(TestCase.EX_OK,
69 self.connection_check.is_successful())
72 class APICheckTesting(unittest.TestCase):
74 Ensures the VPingUserdata class can run in Functest. This test does not
75 actually connect with an OpenStack pod.
79 self.os_creds = OSCreds(
80 username='user', password='pass',
81 auth_url='http://foo.com:5000/v3', project_name='bar')
83 self.api_check = api_check.ApiCheck(
84 os_creds=self.os_creds, ext_net_name='foo')
86 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
87 'add_openstack_api_tests')
88 def test_run_success(self, add_tests):
89 result = mock.MagicMock(name='unittest.TextTestResult')
93 with mock.patch('unittest.TextTestRunner.run', return_value=result):
94 self.assertEquals(TestCase.EX_OK, self.api_check.run())
95 self.assertEquals(TestCase.EX_OK,
96 self.api_check.is_successful())
98 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
99 'add_openstack_api_tests')
100 def test_run_1_of_100_failures(self, add_tests):
101 result = mock.MagicMock(name='unittest.TextTestResult')
102 result.testsRun = 100
103 result.failures = ['foo']
105 with mock.patch('unittest.TextTestRunner.run', return_value=result):
106 self.assertEquals(TestCase.EX_OK, self.api_check.run())
107 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
108 self.api_check.is_successful())
110 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
111 'add_openstack_api_tests')
112 def test_run_1_of_100_failures_within_criteria(self, add_tests):
113 self.api_check.criteria = 90
114 result = mock.MagicMock(name='unittest.TextTestResult')
115 result.testsRun = 100
116 result.failures = ['foo']
118 with mock.patch('unittest.TextTestRunner.run', return_value=result):
119 self.assertEquals(TestCase.EX_OK, self.api_check.run())
120 self.assertEquals(TestCase.EX_OK,
121 self.api_check.is_successful())
124 class HealthCheckTesting(unittest.TestCase):
126 Ensures the VPingUserdata class can run in Functest. This test does not
127 actually connect with an OpenStack pod.
131 self.os_creds = OSCreds(
132 username='user', password='pass',
133 auth_url='http://foo.com:5000/v3', project_name='bar')
135 self.health_check = health_check.HealthCheck(
136 os_creds=self.os_creds, ext_net_name='foo')
138 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
139 'add_openstack_client_tests')
140 def test_run_success(self, add_tests):
141 result = mock.MagicMock(name='unittest.TextTestResult')
142 result.testsRun = 100
145 with mock.patch('unittest.TextTestRunner.run', return_value=result):
146 self.assertEquals(TestCase.EX_OK, self.health_check.run())
147 self.assertEquals(TestCase.EX_OK,
148 self.health_check.is_successful())
150 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
151 'add_openstack_client_tests')
152 def test_run_1_of_100_failures(self, add_tests):
153 result = mock.MagicMock(name='unittest.TextTestResult')
154 result.testsRun = 100
155 result.failures = ['foo']
157 with mock.patch('unittest.TextTestRunner.run', return_value=result):
158 self.assertEquals(TestCase.EX_OK, self.health_check.run())
159 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
160 self.health_check.is_successful())
162 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
163 'add_openstack_client_tests')
164 def test_run_1_of_100_failures_within_criteria(self, add_tests):
165 self.health_check.criteria = 90
166 result = mock.MagicMock(name='unittest.TextTestResult')
167 result.testsRun = 100
168 result.failures = ['foo']
170 with mock.patch('unittest.TextTestRunner.run', return_value=result):
171 self.assertEquals(TestCase.EX_OK, self.health_check.run())
172 self.assertEquals(TestCase.EX_OK,
173 self.health_check.is_successful())
176 class SmokeTesting(unittest.TestCase):
178 Ensures the VPingUserdata class can run in Functest. This test does not
179 actually connect with an OpenStack pod.
183 self.os_creds = OSCreds(
184 username='user', password='pass',
185 auth_url='http://foo.com:5000/v3', project_name='bar')
187 self.smoke = smoke.SnapsSmoke(
188 os_creds=self.os_creds, ext_net_name='foo')
190 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
191 'add_openstack_integration_tests')
192 @mock.patch('os.path.join', return_value=os.getcwd())
193 def test_run_success(self, add_tests, cwd):
194 result = mock.MagicMock(name='unittest.TextTestResult')
195 result.testsRun = 100
198 with mock.patch('unittest.TextTestRunner.run', return_value=result):
199 self.assertEquals(TestCase.EX_OK, self.smoke.run())
200 self.assertEquals(TestCase.EX_OK,
201 self.smoke.is_successful())
203 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
204 'add_openstack_integration_tests')
205 @mock.patch('os.path.join', return_value=os.getcwd())
206 def test_run_1_of_100_failures(self, add_tests, cwd):
207 result = mock.MagicMock(name='unittest.TextTestResult')
208 result.testsRun = 100
209 result.failures = ['foo']
211 with mock.patch('unittest.TextTestRunner.run', return_value=result):
212 self.assertEquals(TestCase.EX_OK, self.smoke.run())
213 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
214 self.smoke.is_successful())
216 @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
217 'add_openstack_integration_tests')
218 @mock.patch('os.path.join', return_value=os.getcwd())
219 def test_run_1_of_100_failures_within_criteria(self, add_tests, cwd):
220 self.smoke.criteria = 90
221 result = mock.MagicMock(name='unittest.TextTestResult')
222 result.testsRun = 100
223 result.failures = ['foo']
225 with mock.patch('unittest.TextTestRunner.run', return_value=result):
226 self.assertEquals(TestCase.EX_OK, self.smoke.run())
227 self.assertEquals(TestCase.EX_OK,
228 self.smoke.is_successful())