Merge "Enable tempest offline by use_custom_images=True"
[functest.git] / functest / tests / unit / openstack / snaps / test_snaps.py
1 #!/usr/bin/env python
2
3 # Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
4 #
5 # All rights reserved. This program and the accompanying materials
6 # are made available under the terms of the Apache License, Version 2.0
7 # which accompanies this distribution, and is available at
8 #
9 # http://www.apache.org/licenses/LICENSE-2.0
10
11 import mock
12 import unittest
13
14 from snaps.openstack.os_credentials import OSCreds
15
16 from functest.core.testcase import TestCase
17 from functest.opnfv_tests.openstack.snaps import connection_check
18
19
20 class ConnectionCheckTesting(unittest.TestCase):
21     """
22     Ensures the VPingUserdata class can run in Functest. This test does not
23     actually connect with an OpenStack pod.
24     """
25
26     def setUp(self):
27         self.os_creds = OSCreds(
28             username='user', password='pass',
29             auth_url='http://foo.com:5000/v3', project_name='bar')
30
31         self.connection_check = connection_check.ConnectionCheck(
32             os_creds=self.os_creds, ext_net_name='foo')
33
34     @mock.patch('functest.opnfv_tests.openstack.snaps.connection_check.'
35                 'ConnectionCheck')
36     @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
37     def test_run_success(self, mock_test, add_os_client_tests):
38         result = mock.MagicMock(name='unittest.TextTestResult')
39         result.testsRun = 100
40         result.failures = []
41         result.errors = []
42         with mock.patch('unittest.TextTestRunner.run', return_value=result):
43             self.assertEquals(TestCase.EX_OK, self.connection_check.run())
44             self.assertEquals(TestCase.EX_OK,
45                               self.connection_check.is_successful())
46
47     @mock.patch('functest.opnfv_tests.openstack.snaps.connection_check.'
48                 'ConnectionCheck')
49     @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
50     def test_run_1_of_100_failures(self, mock_test, 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.connection_check.'
61                 'ConnectionCheck')
62     @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
63     def test_run_1_of_100_failures_within_criteria(self, mock_test,
64                                                    add_os_client_tests):
65         self.connection_check.criteria = 90
66         result = mock.MagicMock(name='unittest.TextTestResult')
67         result.testsRun = 100
68         result.failures = ['foo']
69         result.errors = []
70         with mock.patch('unittest.TextTestRunner.run', return_value=result):
71             self.assertEquals(TestCase.EX_OK, self.connection_check.run())
72             self.assertEquals(TestCase.EX_OK,
73                               self.connection_check.is_successful())