summaryrefslogtreecommitdiffstats
path: root/docs/testing/testing-user.rst
blob: c7c4709c624b200b8407993350ddf256e7bdf10e (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
.. _testing-userguide:

.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0

===================
Testing User Guides
===================

This page provides the links to the installation, configuration and user guides
of the different test projects.

Bottlenecks
------------
.. toctree::
   :maxdepth: 1

   ../submodules/bottlenecks/docs/testing/user/configguide/index
   ../submodules/bottlenecks/docs/testing/user/userguide/index


Functest
---------
.. toctree::
   :maxdepth: 1

   ../submodules/functest/docs/testing/user/configguide/index
   ../submodules/functest/docs/testing/user/userguide/index

NFVbench
-----
.. toctree::
   :maxdepth: 1

   ../submodules/nfvbench/docs/testing/user/userguide/index


QTIP
-----
.. toctree::
   :maxdepth: 1

   ../submodules/qtip/docs/testing/user/configguide/index
   ../submodules/qtip/docs/testing/user/userguide/index


Storperf
--------

.. toctree::
   :maxdepth: 1

   ../submodules/storperf/docs/testing/user/index


VSPERF
------

.. toctree::
   :maxdepth: 1

   ../submodules/vswitchperf/docs/testing/user/configguide/index
   ../submodules/vswitchperf/docs/testing/user/userguide/index


Yardstick
----------
.. toctree::
   :maxdepth: 1

   ../submodules/yardstick/docs/testing/user/configguide/index
   ../submodules/yardstick/docs/testing/user/userguide/index
olor: #dd2200; background-color: #fff0f0 } /* Literal.String.Delimiter */ .highlight .sd { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Doc */ .highlight .s2 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Double */ .highlight .se { color: #0044dd; background-color: #fff0f0 } /* Literal.String.Escape */ .highlight .sh { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Heredoc */ .highlight .si { color: #3333bb; background-color: #fff0f0 } /* Literal.String.Interpol */ .highlight .sx { color: #22bb22; background-color: #f0fff0 } /* Literal.String.Other */ .highlight .sr { color: #008800; background-color: #fff0ff } /* Literal.String.Regex */ .highlight .s1 { color: #dd2200; background-color: #fff0f0 } /* Literal.String.Single */ .highlight .ss { color: #aa6600; background-color: #fff0f0 } /* Literal.String.Symbol */ .highlight .bp { color: #003388 } /* Name.Builtin.Pseudo */ .highlight .fm { color: #0066bb; font-weight: bold } /* Name.Function.Magic */ .highlight .vc { color: #336699 } /* Name.Variable.Class */ .highlight .vg { color: #dd7700 } /* Name.Variable.Global */ .highlight .vi { color: #3333bb } /* Name.Variable.Instance */ .highlight .vm { color: #336699 } /* Name.Variable.Magic */ .highlight .il { color: #0000DD; font-weight: bold } /* Literal.Number.Integer.Long */
# 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 os
import unittest

from snaps.openstack.os_credentials import OSCreds

from functest.core.testcase import TestCase
from functest.opnfv_tests.openstack.snaps import (connection_check, api_check,
                                                  health_check, smoke)


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.snaps_suite_builder.'
                'add_openstack_client_tests')
    def test_run_success(self, 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.snaps_suite_builder.'
                'add_openstack_client_tests')
    def test_run_1_of_100_failures(self, 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.snaps_suite_builder.'
                'add_openstack_client_tests')
    def test_run_1_of_100_failures_within_criteria(self, 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())


class APICheckTesting(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.api_check = api_check.ApiCheck(
            os_creds=self.os_creds, ext_net_name='foo')

    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                'add_openstack_api_tests')
    def test_run_success(self, add_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.api_check.run())
            self.assertEquals(TestCase.EX_OK,
                              self.api_check.is_successful())

    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                'add_openstack_api_tests')
    def test_run_1_of_100_failures(self, add_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.api_check.run())
            self.assertEquals(TestCase.EX_TESTCASE_FAILED,
                              self.api_check.is_successful())

    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                'add_openstack_api_tests')
    def test_run_1_of_100_failures_within_criteria(self, add_tests):
        self.api_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.api_check.run())
            self.assertEquals(TestCase.EX_OK,
                              self.api_check.is_successful())


class HealthCheckTesting(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.health_check = health_check.HealthCheck(
            os_creds=self.os_creds, ext_net_name='foo')

    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                'add_openstack_client_tests')
    def test_run_success(self, add_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.health_check.run())
            self.assertEquals(TestCase.EX_OK,
                              self.health_check.is_successful())

    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                'add_openstack_client_tests')
    def test_run_1_of_100_failures(self, add_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.health_check.run())
            self.assertEquals(TestCase.EX_TESTCASE_FAILED,
                              self.health_check.is_successful())

    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                'add_openstack_client_tests')
    def test_run_1_of_100_failures_within_criteria(self, add_tests):
        self.health_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.health_check.run())
            self.assertEquals(TestCase.EX_OK,
                              self.health_check.is_successful())


class SmokeTesting(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.smoke = smoke.SnapsSmoke(
            os_creds=self.os_creds, ext_net_name='foo')

    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                'add_openstack_integration_tests')
    @mock.patch('os.path.join', return_value=os.getcwd())
    def test_run_success(self, add_tests, cwd):
        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.smoke.run())
            self.assertEquals(TestCase.EX_OK,
                              self.smoke.is_successful())

    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                'add_openstack_integration_tests')
    @mock.patch('os.path.join', return_value=os.getcwd())
    def test_run_1_of_100_failures(self, add_tests, cwd):
        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.smoke.run())
            self.assertEquals(TestCase.EX_TESTCASE_FAILED,
                              self.smoke.is_successful())

    @mock.patch('functest.opnfv_tests.openstack.snaps.snaps_suite_builder.'
                'add_openstack_integration_tests')
    @mock.patch('os.path.join', return_value=os.getcwd())
    def test_run_1_of_100_failures_within_criteria(self, add_tests, cwd):
        self.smoke.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.smoke.run())
            self.assertEquals(TestCase.EX_OK,
                              self.smoke.is_successful())