summaryrefslogtreecommitdiffstats
path: root/functest/tests/unit/openstack/snaps/test_snaps.py
blob: 9cfcc0a69cbe2b8ab8bf1158468d47b04c182dfd (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#!/usr/bin/env python

# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
#
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
#
# http://www.apache.org/licenses/LICENSE-2.0

import mock
import unittest

from snaps.openstack.os_credentials import OSCreds

from functest.core.testcase import TestCase
from functest.opnfv_tests.openstack.snaps import connection_check


class ConnectionCheckTesting(unittest.TestCase):
    """
    Ensures the VPingUserdata class can run in Functest. This test does not
    actually connect with an OpenStack pod.
    """

    def setUp(self):
        self.os_creds = OSCreds(
            username='user', password='pass',
            auth_url='http://foo.com:5000/v3', project_name='bar')

        self.connection_check = connection_check.ConnectionCheck(
            os_creds=self.os_creds, ext_net_name='foo')

    @mock.patch('functest.opnfv_tests.openstack.snaps.connection_check.'
                'ConnectionCheck')
    @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
    def test_run_success(self, mock_test, add_os_client_tests):
        result = mock.MagicMock(name='unittest.TextTestResult')
        result.testsRun = 100
        result.failures = []
        result.errors = []
        with mock.patch('unittest.TextTestRunner.run', return_value=result):
            self.assertEquals(TestCase.EX_OK, self.connection_check.run())
            self.assertEquals(TestCase.EX_OK,
                              self.connection_check.is_successful())

    @mock.patch('functest.opnfv_tests.openstack.snaps.connection_check.'
                'ConnectionCheck')
    @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
    def test_run_1_of_100_failures(self, mock_test, add_os_client_tests):
        result = mock.MagicMock(name='unittest.TextTestResult')
        result.testsRun = 100
        result.failures = ['foo']
        result.errors = []
        with mock.patch('unittest.TextTestRunner.run', return_value=result):
            self.assertEquals(TestCase.EX_OK, self.connection_check.run())
            self.assertEquals(TestCase.EX_TESTCASE_FAILED,
                              self.connection_check.is_successful())

    @mock.patch('functest.opnfv_tests.openstack.snaps.connection_check.'
                'ConnectionCheck')
    @mock.patch('snaps.test_suite_builder.add_openstack_client_tests')
    def test_run_1_of_100_failures_within_criteria(self, mock_test,
                                                   add_os_client_tests):
        self.connection_check.criteria = 90
        result = mock.MagicMock(name='unittest.TextTestResult')
        result.testsRun = 100
        result.failures = ['foo']
        result.errors = []
        with mock.patch('unittest.TextTestRunner.run', return_value=result):
            self.assertEquals(TestCase.EX_OK, self.connection_check.run())
            self.assertEquals(TestCase.EX_OK,
                              self.connection_check.is_successful())