aboutsummaryrefslogtreecommitdiffstats
path: root/functest
diff options
context:
space:
mode:
Diffstat (limited to 'functest')
-rwxr-xr-xfunctest/ci/run_tests.py22
-rw-r--r--functest/opnfv_tests/openstack/snaps/api_check.py10
-rw-r--r--functest/opnfv_tests/openstack/snaps/health_check.py10
-rw-r--r--functest/opnfv_tests/openstack/snaps/smoke.py10
-rw-r--r--functest/tests/unit/openstack/snaps/test_snaps.py169
5 files changed, 195 insertions, 26 deletions
diff --git a/functest/ci/run_tests.py b/functest/ci/run_tests.py
index 430f0ca8..722df14f 100755
--- a/functest/ci/run_tests.py
+++ b/functest/ci/run_tests.py
@@ -252,16 +252,18 @@ class Runner(object):
msg.add_row([env_var, CONST.__getattribute__(env_var)])
logger.info("Deployment description: \n\n%s\n", msg)
- msg = prettytable.PrettyTable(
- header_style='upper', padding_width=5,
- field_names=['test case', 'project', 'tier', 'duration', 'result'])
- for test_case in self.executed_test_cases:
- result = 'PASS' if(test_case.is_successful(
- ) == test_case.EX_OK) else 'FAIL'
- msg.add_row([test_case.case_name, test_case.project_name,
- _tiers.get_tier_name(test_case.case_name),
- test_case.get_duration(), result])
- logger.info("FUNCTEST REPORT: \n\n%s\n", msg)
+ if len(self.executed_test_cases) > 1:
+ msg = prettytable.PrettyTable(
+ header_style='upper', padding_width=5,
+ field_names=['test case', 'project', 'tier',
+ 'duration', 'result'])
+ for test_case in self.executed_test_cases:
+ result = 'PASS' if(test_case.is_successful(
+ ) == test_case.EX_OK) else 'FAIL'
+ msg.add_row([test_case.case_name, test_case.project_name,
+ _tiers.get_tier_name(test_case.case_name),
+ test_case.get_duration(), result])
+ logger.info("FUNCTEST REPORT: \n\n%s\n", msg)
logger.info("Execution exit value: %s" % self.overall_result)
return self.overall_result
diff --git a/functest/opnfv_tests/openstack/snaps/api_check.py b/functest/opnfv_tests/openstack/snaps/api_check.py
index 50f67094..43518cb4 100644
--- a/functest/opnfv_tests/openstack/snaps/api_check.py
+++ b/functest/opnfv_tests/openstack/snaps/api_check.py
@@ -1,4 +1,5 @@
-# Copyright (c) 2015 All rights reserved
+# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
+#
# 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
@@ -26,8 +27,15 @@ class ApiCheck(SnapsTestRunner):
self.suite = unittest.TestSuite()
+ def run(self, **kwargs):
+ """
+ Builds the test suite then calls super.run()
+ :param kwargs: the arguments to pass on
+ :return:
+ """
test_suite_builder.add_openstack_api_tests(
suite=self.suite,
os_creds=self.os_creds,
ext_net_name=self.ext_net_name,
use_keystone=self.use_keystone)
+ return super(self.__class__, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/health_check.py b/functest/opnfv_tests/openstack/snaps/health_check.py
index 0daddcdd..4e94460c 100644
--- a/functest/opnfv_tests/openstack/snaps/health_check.py
+++ b/functest/opnfv_tests/openstack/snaps/health_check.py
@@ -1,4 +1,5 @@
-# Copyright (c) 2015 All rights reserved
+# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
+#
# 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
@@ -28,6 +29,12 @@ class HealthCheck(SnapsTestRunner):
self.suite = unittest.TestSuite()
+ def run(self, **kwargs):
+ """
+ Builds the test suite then calls super.run()
+ :param kwargs: the arguments to pass on
+ :return:
+ """
image_custom_config = None
if hasattr(CONST, 'snaps_images_cirros'):
@@ -39,3 +46,4 @@ class HealthCheck(SnapsTestRunner):
use_keystone=self.use_keystone,
flavor_metadata=self.flavor_metadata,
image_metadata=image_custom_config))
+ return super(self.__class__, self).run()
diff --git a/functest/opnfv_tests/openstack/snaps/smoke.py b/functest/opnfv_tests/openstack/snaps/smoke.py
index d9f95e90..c3c55c7c 100644
--- a/functest/opnfv_tests/openstack/snaps/smoke.py
+++ b/functest/opnfv_tests/openstack/snaps/smoke.py
@@ -1,4 +1,5 @@
-# Copyright (c) 2015 All rights reserved
+# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
+#
# 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
@@ -28,6 +29,12 @@ class SnapsSmoke(SnapsTestRunner):
self.suite = unittest.TestSuite()
+ def run(self, **kwargs):
+ """
+ Builds the test suite then calls super.run()
+ :param kwargs: the arguments to pass on
+ :return:
+ """
image_config = None
if hasattr(CONST, 'snaps_images_cirros'):
image_config = CONST.__getattribute__('snaps_images_cirros')
@@ -47,3 +54,4 @@ class SnapsSmoke(SnapsTestRunner):
flavor_metadata=self.flavor_metadata,
image_metadata=image_config,
use_floating_ips=self.use_fip)
+ return super(self.__class__, self).run()
diff --git a/functest/tests/unit/openstack/snaps/test_snaps.py b/functest/tests/unit/openstack/snaps/test_snaps.py
index 9cfcc0a6..7cf53b39 100644
--- a/functest/tests/unit/openstack/snaps/test_snaps.py
+++ b/functest/tests/unit/openstack/snaps/test_snaps.py
@@ -1,5 +1,3 @@
-#!/usr/bin/env python
-
# Copyright (c) 2017 Cable Television Laboratories, Inc. and others.
#
# All rights reserved. This program and the accompanying materials
@@ -9,12 +7,14 @@
# 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
+from functest.opnfv_tests.openstack.snaps import (connection_check, api_check,
+ health_check, smoke)
class ConnectionCheckTesting(unittest.TestCase):
@@ -31,10 +31,8 @@ class ConnectionCheckTesting(unittest.TestCase):
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):
+ def test_run_success(self, add_os_client_tests):
result = mock.MagicMock(name='unittest.TextTestResult')
result.testsRun = 100
result.failures = []
@@ -44,10 +42,8 @@ class ConnectionCheckTesting(unittest.TestCase):
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):
+ def test_run_1_of_100_failures(self, add_os_client_tests):
result = mock.MagicMock(name='unittest.TextTestResult')
result.testsRun = 100
result.failures = ['foo']
@@ -57,11 +53,8 @@ class ConnectionCheckTesting(unittest.TestCase):
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):
+ 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
@@ -71,3 +64,153 @@ class ConnectionCheckTesting(unittest.TestCase):
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('snaps.test_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('snaps.test_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('snaps.test_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('snaps.test_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('snaps.test_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('snaps.test_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('snaps.test_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('snaps.test_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('snaps.test_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())