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('snaps.test_suite_builder.add_openstack_client_tests')
35 def test_run_success(self, add_os_client_tests):
36 result = mock.MagicMock(name='unittest.TextTestResult')
40 with mock.patch('unittest.TextTestRunner.run', return_value=result):
41 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
42 self.assertEquals(TestCase.EX_OK,
43 self.connection_check.is_successful())
45 @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
46 def test_run_1_of_100_failures(self, add_os_client_tests):
47 result = mock.MagicMock(name='unittest.TextTestResult')
49 result.failures = ['foo']
51 with mock.patch('unittest.TextTestRunner.run', return_value=result):
52 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
53 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
54 self.connection_check.is_successful())
56 @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
57 def test_run_1_of_100_failures_within_criteria(self, add_os_client_tests):
58 self.connection_check.criteria = 90
59 result = mock.MagicMock(name='unittest.TextTestResult')
61 result.failures = ['foo']
63 with mock.patch('unittest.TextTestRunner.run', return_value=result):
64 self.assertEquals(TestCase.EX_OK, self.connection_check.run())
65 self.assertEquals(TestCase.EX_OK,
66 self.connection_check.is_successful())
69 class APICheckTesting(unittest.TestCase):
71 Ensures the VPingUserdata class can run in Functest. This test does not
72 actually connect with an OpenStack pod.
76 self.os_creds = OSCreds(
77 username='user', password='pass',
78 auth_url='http://foo.com:5000/v3', project_name='bar')
80 self.api_check = api_check.ApiCheck(
81 os_creds=self.os_creds, ext_net_name='foo')
83 @mock.patch('snaps.test_suite_builder.add_openstack_api_tests')
84 def test_run_success(self, add_tests):
85 result = mock.MagicMock(name='unittest.TextTestResult')
89 with mock.patch('unittest.TextTestRunner.run', return_value=result):
90 self.assertEquals(TestCase.EX_OK, self.api_check.run())
91 self.assertEquals(TestCase.EX_OK,
92 self.api_check.is_successful())
94 @mock.patch('snaps.test_suite_builder.add_openstack_api_tests')
95 def test_run_1_of_100_failures(self, add_tests):
96 result = mock.MagicMock(name='unittest.TextTestResult')
98 result.failures = ['foo']
100 with mock.patch('unittest.TextTestRunner.run', return_value=result):
101 self.assertEquals(TestCase.EX_OK, self.api_check.run())
102 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
103 self.api_check.is_successful())
105 @mock.patch('snaps.test_suite_builder.add_openstack_api_tests')
106 def test_run_1_of_100_failures_within_criteria(self, add_tests):
107 self.api_check.criteria = 90
108 result = mock.MagicMock(name='unittest.TextTestResult')
109 result.testsRun = 100
110 result.failures = ['foo']
112 with mock.patch('unittest.TextTestRunner.run', return_value=result):
113 self.assertEquals(TestCase.EX_OK, self.api_check.run())
114 self.assertEquals(TestCase.EX_OK,
115 self.api_check.is_successful())
118 class HealthCheckTesting(unittest.TestCase):
120 Ensures the VPingUserdata class can run in Functest. This test does not
121 actually connect with an OpenStack pod.
125 self.os_creds = OSCreds(
126 username='user', password='pass',
127 auth_url='http://foo.com:5000/v3', project_name='bar')
129 self.health_check = health_check.HealthCheck(
130 os_creds=self.os_creds, ext_net_name='foo')
132 @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
133 def test_run_success(self, add_tests):
134 result = mock.MagicMock(name='unittest.TextTestResult')
135 result.testsRun = 100
138 with mock.patch('unittest.TextTestRunner.run', return_value=result):
139 self.assertEquals(TestCase.EX_OK, self.health_check.run())
140 self.assertEquals(TestCase.EX_OK,
141 self.health_check.is_successful())
143 @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
144 def test_run_1_of_100_failures(self, add_tests):
145 result = mock.MagicMock(name='unittest.TextTestResult')
146 result.testsRun = 100
147 result.failures = ['foo']
149 with mock.patch('unittest.TextTestRunner.run', return_value=result):
150 self.assertEquals(TestCase.EX_OK, self.health_check.run())
151 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
152 self.health_check.is_successful())
154 @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
155 def test_run_1_of_100_failures_within_criteria(self, add_tests):
156 self.health_check.criteria = 90
157 result = mock.MagicMock(name='unittest.TextTestResult')
158 result.testsRun = 100
159 result.failures = ['foo']
161 with mock.patch('unittest.TextTestRunner.run', return_value=result):
162 self.assertEquals(TestCase.EX_OK, self.health_check.run())
163 self.assertEquals(TestCase.EX_OK,
164 self.health_check.is_successful())
167 class SmokeTesting(unittest.TestCase):
169 Ensures the VPingUserdata class can run in Functest. This test does not
170 actually connect with an OpenStack pod.
174 self.os_creds = OSCreds(
175 username='user', password='pass',
176 auth_url='http://foo.com:5000/v3', project_name='bar')
178 self.smoke = smoke.SnapsSmoke(
179 os_creds=self.os_creds, ext_net_name='foo')
181 @mock.patch('snaps.test_suite_builder.add_openstack_integration_tests')
182 @mock.patch('os.path.join', return_value=os.getcwd())
183 def test_run_success(self, add_tests, cwd):
184 result = mock.MagicMock(name='unittest.TextTestResult')
185 result.testsRun = 100
188 with mock.patch('unittest.TextTestRunner.run', return_value=result):
189 self.assertEquals(TestCase.EX_OK, self.smoke.run())
190 self.assertEquals(TestCase.EX_OK,
191 self.smoke.is_successful())
193 @mock.patch('snaps.test_suite_builder.add_openstack_integration_tests')
194 @mock.patch('os.path.join', return_value=os.getcwd())
195 def test_run_1_of_100_failures(self, add_tests, cwd):
196 result = mock.MagicMock(name='unittest.TextTestResult')
197 result.testsRun = 100
198 result.failures = ['foo']
200 with mock.patch('unittest.TextTestRunner.run', return_value=result):
201 self.assertEquals(TestCase.EX_OK, self.smoke.run())
202 self.assertEquals(TestCase.EX_TESTCASE_FAILED,
203 self.smoke.is_successful())
205 @mock.patch('snaps.test_suite_builder.add_openstack_integration_tests')
206 @mock.patch('os.path.join', return_value=os.getcwd())
207 def test_run_1_of_100_failures_within_criteria(self, add_tests, cwd):
208 self.smoke.criteria = 90
209 result = mock.MagicMock(name='unittest.TextTestResult')
210 result.testsRun = 100
211 result.failures = ['foo']
213 with mock.patch('unittest.TextTestRunner.run', return_value=result):
214 self.assertEquals(TestCase.EX_OK, self.smoke.run())
215 self.assertEquals(TestCase.EX_OK,
216 self.smoke.is_successful())