Merge "Fix pylint errors in several utils modules"
[functest-xtesting.git] / functest / tests / unit / openstack / snaps / test_snaps.py
1 # Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
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 #
7 # http://www.apache.org/licenses/LICENSE-2.0
8
9 # pylint: disable=missing-docstring
10
11 import mock
12 import os
13 import unittest
14
15 from snaps.openstack.os_credentials import OSCreds
16
17 from functest.core.testcase import TestCase
18 from functest.opnfv_tests.openstack.snaps import (connection_check, api_check,
19                                                   health_check, smoke)
20
21
22 class ConnectionCheckTesting(unittest.TestCase):
23     """
24     Ensures the VPingUserdata class can run in Functest. This test does not
25     actually connect with an OpenStack pod.
26     """
27
28     def setUp(self):
29         self.os_creds = OSCreds(
30             username='user', password='pass',
31             auth_url='http://foo.com:5000/v3', project_name='bar')
32
33         self.connection_check = connection_check.ConnectionCheck(
34             os_creds=self.os_creds, ext_net_name='foo')
35
36     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
37                 'add_openstack_client_tests')
38     def test_run_success(self, add_os_client_tests):
39         result = mock.MagicMock(name='unittest.TextTestResult')
40         result.testsRun = 100
41         result.failures = []
42         result.errors = []
43         with mock.patch('unittest.TextTestRunner.run', return_value=result):
44             self.assertEquals(TestCase.EX_OK, self.connection_check.run())
45             self.assertEquals(TestCase.EX_OK,
46                               self.connection_check.is_successful())
47
48     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
49                 'add_openstack_client_tests')
50     def test_run_1_of_100_failures(self, add_os_client_tests):
51         result = mock.MagicMock(name='unittest.TextTestResult')
52         result.testsRun = 100
53         result.failures = ['foo']
54         result.errors = []
55         with mock.patch('unittest.TextTestRunner.run', return_value=result):
56             self.assertEquals(TestCase.EX_OK, self.connection_check.run())
57             self.assertEquals(TestCase.EX_TESTCASE_FAILED,
58                               self.connection_check.is_successful())
59
60     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
61                 'add_openstack_client_tests')
62     def test_run_1_of_100_failures_within_criteria(self, add_os_client_tests):
63         self.connection_check.criteria = 90
64         result = mock.MagicMock(name='unittest.TextTestResult')
65         result.testsRun = 100
66         result.failures = ['foo']
67         result.errors = []
68         with mock.patch('unittest.TextTestRunner.run', return_value=result):
69             self.assertEquals(TestCase.EX_OK, self.connection_check.run())
70             self.assertEquals(TestCase.EX_OK,
71                               self.connection_check.is_successful())
72
73
74 class APICheckTesting(unittest.TestCase):
75     """
76     Ensures the VPingUserdata class can run in Functest. This test does not
77     actually connect with an OpenStack pod.
78     """
79
80     def setUp(self):
81         self.os_creds = OSCreds(
82             username='user', password='pass',
83             auth_url='http://foo.com:5000/v3', project_name='bar')
84
85         self.api_check = api_check.ApiCheck(
86             os_creds=self.os_creds, ext_net_name='foo')
87
88     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
89                 'add_openstack_api_tests')
90     def test_run_success(self, add_tests):
91         result = mock.MagicMock(name='unittest.TextTestResult')
92         result.testsRun = 100
93         result.failures = []
94         result.errors = []
95         with mock.patch('unittest.TextTestRunner.run', return_value=result):
96             self.assertEquals(TestCase.EX_OK, self.api_check.run())
97             self.assertEquals(TestCase.EX_OK,
98                               self.api_check.is_successful())
99
100     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
101                 'add_openstack_api_tests')
102     def test_run_1_of_100_failures(self, add_tests):
103         result = mock.MagicMock(name='unittest.TextTestResult')
104         result.testsRun = 100
105         result.failures = ['foo']
106         result.errors = []
107         with mock.patch('unittest.TextTestRunner.run', return_value=result):
108             self.assertEquals(TestCase.EX_OK, self.api_check.run())
109             self.assertEquals(TestCase.EX_TESTCASE_FAILED,
110                               self.api_check.is_successful())
111
112     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
113                 'add_openstack_api_tests')
114     def test_run_1_of_100_failures_within_criteria(self, add_tests):
115         self.api_check.criteria = 90
116         result = mock.MagicMock(name='unittest.TextTestResult')
117         result.testsRun = 100
118         result.failures = ['foo']
119         result.errors = []
120         with mock.patch('unittest.TextTestRunner.run', return_value=result):
121             self.assertEquals(TestCase.EX_OK, self.api_check.run())
122             self.assertEquals(TestCase.EX_OK,
123                               self.api_check.is_successful())
124
125
126 class HealthCheckTesting(unittest.TestCase):
127     """
128     Ensures the VPingUserdata class can run in Functest. This test does not
129     actually connect with an OpenStack pod.
130     """
131
132     def setUp(self):
133         self.os_creds = OSCreds(
134             username='user', password='pass',
135             auth_url='http://foo.com:5000/v3', project_name='bar')
136
137         self.health_check = health_check.HealthCheck(
138             os_creds=self.os_creds, ext_net_name='foo')
139
140     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
141                 'add_openstack_client_tests')
142     def test_run_success(self, add_tests):
143         result = mock.MagicMock(name='unittest.TextTestResult')
144         result.testsRun = 100
145         result.failures = []
146         result.errors = []
147         with mock.patch('unittest.TextTestRunner.run', return_value=result):
148             self.assertEquals(TestCase.EX_OK, self.health_check.run())
149             self.assertEquals(TestCase.EX_OK,
150                               self.health_check.is_successful())
151
152     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
153                 'add_openstack_client_tests')
154     def test_run_1_of_100_failures(self, add_tests):
155         result = mock.MagicMock(name='unittest.TextTestResult')
156         result.testsRun = 100
157         result.failures = ['foo']
158         result.errors = []
159         with mock.patch('unittest.TextTestRunner.run', return_value=result):
160             self.assertEquals(TestCase.EX_OK, self.health_check.run())
161             self.assertEquals(TestCase.EX_TESTCASE_FAILED,
162                               self.health_check.is_successful())
163
164     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
165                 'add_openstack_client_tests')
166     def test_run_1_of_100_failures_within_criteria(self, add_tests):
167         self.health_check.criteria = 90
168         result = mock.MagicMock(name='unittest.TextTestResult')
169         result.testsRun = 100
170         result.failures = ['foo']
171         result.errors = []
172         with mock.patch('unittest.TextTestRunner.run', return_value=result):
173             self.assertEquals(TestCase.EX_OK, self.health_check.run())
174             self.assertEquals(TestCase.EX_OK,
175                               self.health_check.is_successful())
176
177
178 class SmokeTesting(unittest.TestCase):
179     """
180     Ensures the VPingUserdata class can run in Functest. This test does not
181     actually connect with an OpenStack pod.
182     """
183
184     def setUp(self):
185         self.os_creds = OSCreds(
186             username='user', password='pass',
187             auth_url='http://foo.com:5000/v3', project_name='bar')
188
189         self.smoke = smoke.SnapsSmoke(
190             os_creds=self.os_creds, ext_net_name='foo')
191
192     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
193                 'add_openstack_integration_tests')
194     @mock.patch('os.path.join', return_value=os.getcwd())
195     def test_run_success(self, add_tests, cwd):
196         result = mock.MagicMock(name='unittest.TextTestResult')
197         result.testsRun = 100
198         result.failures = []
199         result.errors = []
200         with mock.patch('unittest.TextTestRunner.run', return_value=result):
201             self.assertEquals(TestCase.EX_OK, self.smoke.run())
202             self.assertEquals(TestCase.EX_OK,
203                               self.smoke.is_successful())
204
205     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
206                 'add_openstack_integration_tests')
207     @mock.patch('os.path.join', return_value=os.getcwd())
208     def test_run_1_of_100_failures(self, add_tests, cwd):
209         result = mock.MagicMock(name='unittest.TextTestResult')
210         result.testsRun = 100
211         result.failures = ['foo']
212         result.errors = []
213         with mock.patch('unittest.TextTestRunner.run', return_value=result):
214             self.assertEquals(TestCase.EX_OK, self.smoke.run())
215             self.assertEquals(TestCase.EX_TESTCASE_FAILED,
216                               self.smoke.is_successful())
217
218     @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
219                 'add_openstack_integration_tests')
220     @mock.patch('os.path.join', return_value=os.getcwd())
221     def test_run_1_of_100_failures_within_criteria(self, add_tests, cwd):
222         self.smoke.criteria = 90
223         result = mock.MagicMock(name='unittest.TextTestResult')
224         result.testsRun = 100
225         result.failures = ['foo']
226         result.errors = []
227         with mock.patch('unittest.TextTestRunner.run', return_value=result):
228             self.assertEquals(TestCase.EX_OK, self.smoke.run())
229             self.assertEquals(TestCase.EX_OK,
230                               self.smoke.is_successful())