From 578f831fe90f08028c6e88e103175b9bb698b6c5 Mon Sep 17 00:00:00 2001 From: boucherv Date: Tue, 22 Aug 2017 12:08:14 +0200 Subject: More support of snaps for VNF Remove OpenStack utils in vnf_base Support snaps for quotas management in cloudify_ims Change-Id: I44e5b01bb26569276133e85dfc25bc2cceb03056 Signed-off-by: boucherv --- functest/core/vnf.py | 58 +++++---- functest/opnfv_tests/vnf/ims/cloudify_ims.py | 27 +++-- functest/opnfv_tests/vnf/ims/cloudify_ims.yaml | 7 ++ .../opnfv_tests/vnf/ims/orchestra_clearwaterims.py | 15 +-- functest/opnfv_tests/vnf/ims/orchestra_openims.py | 17 +-- functest/tests/unit/core/test_vnf.py | 129 ++++++++------------- functest/tests/unit/vnf/ims/test_cloudify_ims.py | 106 ----------------- .../unit/vnf/ims/test_orchestra_clearwaterims.py | 107 ----------------- .../tests/unit/vnf/ims/test_orchestra_openims.py | 107 ----------------- 9 files changed, 119 insertions(+), 454 deletions(-) (limited to 'functest') diff --git a/functest/core/vnf.py b/functest/core/vnf.py index a329212d8..bbdd80a00 100644 --- a/functest/core/vnf.py +++ b/functest/core/vnf.py @@ -14,7 +14,9 @@ import time import functest.core.testcase as base from functest.utils.constants import CONST -import functest.utils.openstack_utils as os_utils +from snaps.openstack.create_user import UserSettings, OpenStackUser +from snaps.openstack.create_project import ProjectSettings, OpenStackProject +from snaps.openstack.tests import openstack_tests __author__ = ("Morgan Richomme , " "Valentin Boucher ") @@ -43,10 +45,11 @@ class VnfOnBoarding(base.TestCase): def __init__(self, **kwargs): super(VnfOnBoarding, self).__init__(**kwargs) - self.exist_obj = {'tenant': False, 'user': False} self.tenant_name = CONST.__getattribute__( 'vnf_{}_tenant_name'.format(self.case_name)) - self.creds = {} + self.snaps_creds = {} + self.created_object = [] + self.os_project = None def run(self, **kwargs): """ @@ -100,20 +103,30 @@ class VnfOnBoarding(base.TestCase): 'vnf_{}_tenant_description'.format(self.case_name)) self.__logger.info("Prepare VNF: %s, description: %s", self.tenant_name, tenant_description) - keystone_client = os_utils.get_keystone_client() - self.exist_obj['tenant'] = ( - not os_utils.get_or_create_tenant_for_vnf( - keystone_client, - self.tenant_name, - tenant_description)) - self.exist_obj['user'] = not os_utils.get_or_create_user_for_vnf( - keystone_client, self.tenant_name) - self.creds = { - "tenant": self.tenant_name, - "username": self.tenant_name, - "password": self.tenant_name, - "auth_url": os_utils.get_credentials()['auth_url'] - } + snaps_creds = openstack_tests.get_credentials( + os_env_file=CONST.__getattribute__('openstack_creds')) + + project_creator = OpenStackProject( + snaps_creds, + ProjectSettings( + name=self.tenant_name, + description=tenant_description + )) + project_creator.create() + self.created_object.append(project_creator) + self.os_project = project_creator + + user_creator = OpenStackUser(snaps_creds, + UserSettings( + name=self.tenant_name, + password=self.tenant_name)) + user_creator.create() + self.created_object.append(user_creator) + + project_creator.assoc_user(user_creator.user_settings) + + self.snaps_creds = user_creator.get_os_creds(self.tenant_name) + return base.TestCase.EX_OK except Exception: # pylint: disable=broad-except self.__logger.exception("Exception raised during VNF preparation") @@ -185,8 +198,9 @@ class VnfOnBoarding(base.TestCase): * the tenant """ self.__logger.info("test cleaning") - keystone_client = os_utils.get_keystone_client() - if not self.exist_obj['tenant']: - os_utils.delete_tenant(keystone_client, self.tenant_name) - if not self.exist_obj['user']: - os_utils.delete_user(keystone_client, self.tenant_name) + self.__logger.info('Remove the cloudify manager OS object ..') + for creator in reversed(self.created_object): + try: + creator.clean() + except Exception as exc: # pylint: disable=broad-except + self.__logger.error('Unexpected error cleaning - %s', exc) diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims.py b/functest/opnfv_tests/vnf/ims/cloudify_ims.py index 8f6fcec89..2733bc3a2 100644 --- a/functest/opnfv_tests/vnf/ims/cloudify_ims.py +++ b/functest/opnfv_tests/vnf/ims/cloudify_ims.py @@ -24,7 +24,6 @@ import functest.opnfv_tests.vnf.ims.clearwater_ims_base as clearwater_ims_base from functest.utils.constants import CONST import functest.utils.openstack_utils as os_utils -from snaps.openstack.os_credentials import OSCreds from snaps.openstack.create_network import (NetworkSettings, SubnetSettings, OpenStackNetwork) from snaps.openstack.create_security_group import (SecurityGroupSettings, @@ -63,7 +62,6 @@ class CloudifyIms(clearwater_ims_base.ClearwaterOnBoardingBase): raise Exception("VNF config file not found") self.snaps_creds = '' - self.created_object = [] config_file = os.path.join(self.case_dir, self.config) self.orchestrator = dict( @@ -101,12 +99,19 @@ class CloudifyIms(clearwater_ims_base.ClearwaterOnBoardingBase): self.__logger.info("Additional pre-configuration steps") - self.snaps_creds = OSCreds( - username=self.creds['username'], - password=self.creds['password'], - auth_url=self.creds['auth_url'], - project_name=self.creds['tenant'], - identity_api_version=int(os_utils.get_keystone_client_version())) + compute_quotas = self.os_project.get_compute_quotas() + network_quotas = self.os_project.get_network_quotas() + + for key, value in ( + self.orchestrator['requirements']['compute_quotas'].items()): + setattr(compute_quotas, key, value) + + for key, value in ( + self.orchestrator['requirements']['network_quotas'].items()): + setattr(network_quotas, key, value) + + compute_quotas = self.project_ims.update_compute_quotas(compute_quotas) + network_quotas = self.project_ims.update_network_quotas(network_quotas) # needs some images self.__logger.info("Upload some OS images if it doesn't exist") @@ -392,12 +397,6 @@ class CloudifyIms(clearwater_ims_base.ClearwaterOnBoardingBase): self.__logger.warn("Some issue during the undeployment ..") self.__logger.warn("Tenant clean continue ..") - self.__logger.info('Remove the cloudify manager OS object ..') - for creator in reversed(self.created_object): - try: - creator.clean() - except Exception as exc: - self.logger.error('Unexpected error cleaning - %s', exc) super(CloudifyIms, self).clean() @energy.enable_recording diff --git a/functest/opnfv_tests/vnf/ims/cloudify_ims.yaml b/functest/opnfv_tests/vnf/ims/cloudify_ims.yaml index 743c6ddd8..1b2394683 100644 --- a/functest/opnfv_tests/vnf/ims/cloudify_ims.yaml +++ b/functest/opnfv_tests/vnf/ims/cloudify_ims.yaml @@ -21,6 +21,13 @@ vnf: flavor: name: m1.small ram_min: 2048 + compute_quotas: + cores: 50 + instances: 15 + network_quotas: + security_group: 20 + security_group_rule: 100 + port: 50 inputs: image_id: 'ubuntu_14.04' flavor_id: 'm1.small' diff --git a/functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py b/functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py index 9e14711c1..c1b88c669 100644 --- a/functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py +++ b/functest/opnfv_tests/vnf/ims/orchestra_clearwaterims.py @@ -31,7 +31,6 @@ from snaps.openstack.create_network import ( SubnetSettings, PortSettings) from snaps.openstack.create_router import OpenStackRouter, RouterSettings -from snaps.openstack.os_credentials import OSCreds from snaps.openstack.create_instance import ( VmInstanceSettings, OpenStackVmInstance) @@ -210,15 +209,13 @@ class ClearwaterImsVnf(vnf.VnfOnBoarding): super(ClearwaterImsVnf, self).prepare() self.logger.info("Additional pre-configuration steps") - self.logger.info("creds %s", (self.creds)) - - self.snaps_creds = OSCreds( - username=self.creds['username'], - password=self.creds['password'], - auth_url=self.creds['auth_url'], - project_name=self.creds['tenant'], - identity_api_version=int(os_utils.get_keystone_client_version())) + self.creds = { + "tenant": self.tenant_name, + "username": self.tenant_name, + "password": self.tenant_name, + "auth_url": os_utils.get_credentials()['auth_url'] + } self.prepare_images() self.prepare_flavor() self.prepare_security_groups() diff --git a/functest/opnfv_tests/vnf/ims/orchestra_openims.py b/functest/opnfv_tests/vnf/ims/orchestra_openims.py index f9a81f225..d9d4d8a1f 100644 --- a/functest/opnfv_tests/vnf/ims/orchestra_openims.py +++ b/functest/opnfv_tests/vnf/ims/orchestra_openims.py @@ -32,7 +32,6 @@ from snaps.openstack.create_network import ( SubnetSettings, PortSettings) from snaps.openstack.create_router import OpenStackRouter, RouterSettings -from snaps.openstack.os_credentials import OSCreds from snaps.openstack.create_instance import ( VmInstanceSettings, OpenStackVmInstance) from functest.opnfv_tests.openstack.snaps import snaps_utils @@ -199,22 +198,18 @@ class OpenImsVnf(vnf.VnfOnBoarding): self.case_name, config_file) self.images.update(get_config("tenant_images.%s" % self.case_name, config_file)) - self.snaps_creds = None def prepare(self): """Prepare testscase (Additional pre-configuration steps).""" super(OpenImsVnf, self).prepare() self.logger.info("Additional pre-configuration steps") - self.logger.info("creds %s", (self.creds)) - - self.snaps_creds = OSCreds( - username=self.creds['username'], - password=self.creds['password'], - auth_url=self.creds['auth_url'], - project_name=self.creds['tenant'], - identity_api_version=int(os_utils.get_keystone_client_version())) - + self.creds = { + "tenant": self.tenant_name, + "username": self.tenant_name, + "password": self.tenant_name, + "auth_url": os_utils.get_credentials()['auth_url'] + } self.prepare_images() self.prepare_flavor() self.prepare_security_groups() diff --git a/functest/tests/unit/core/test_vnf.py b/functest/tests/unit/core/test_vnf.py index 2ebbbe379..00a29ead1 100644 --- a/functest/tests/unit/core/test_vnf.py +++ b/functest/tests/unit/core/test_vnf.py @@ -18,6 +18,8 @@ from functest.core import vnf from functest.core import testcase from functest.utils import constants +from snaps.openstack.os_credentials import OSCreds + class VnfBaseTesting(unittest.TestCase): """The class testing VNF.""" @@ -102,91 +104,62 @@ class VnfBaseTesting(unittest.TestCase): with self.assertRaises(vnf.VnfTestException): self.test.test_vnf() - @mock.patch('functest.core.vnf.os_utils.get_keystone_client') - @mock.patch('functest.core.vnf.os_utils.delete_user', - return_value=True) - def test_clean_user_already_exist(self, *args): - self.test.exist_obj['user'] = True - self.test.clean() - args[0].assert_not_called() - args[1].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client') - @mock.patch('functest.core.vnf.os_utils.delete_user', - return_value=True) - def test_clean_user_created(self, *args): - self.test.exist_obj['user'] = False - self.test.clean() - args[0].assert_called_once_with(mock.ANY, self.tenant_name) - args[1].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client') - @mock.patch('functest.core.vnf.os_utils.delete_tenant', - return_value=True) - def test_clean_tenant_already_exist(self, *args): - self.test.exist_obj['tenant'] = True - self.test.clean() - args[0].assert_not_called() - args[1].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client') - @mock.patch('functest.core.vnf.os_utils.delete_tenant', - return_value=True) - def test_clean_tenant_created(self, *args): - self.test.exist_obj['tenant'] = False - self.test.clean() - args[0].assert_called_once_with(mock.ANY, self.tenant_name) - args[1].assert_called_once_with() - def test_deploy_orch_unimplemented(self): self.assertTrue(self.test.deploy_orchestrator()) - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_credentials', - return_value={'auth_url': 'test'}) - def test_prepare(self, *args): - self.assertEqual(self.test.prepare(), - testcase.TestCase.EX_OK) - args[0].assert_called_once_with() - args[1].assert_called_once_with('test', self.tenant_name) - args[2].assert_called_once_with( - 'test', self.tenant_name, self.tenant_description) - args[3].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', +# @mock.patch('snaps.openstack.tests.openstack_tests.get_credentials', +# return_value='test') +# @mock.patch('snaps.openstack.create_project.OpenStackProject', +# return_value=True) +# @mock.patch('snaps.openstack.create_user.OpenStackUser', +# return_value=True) +# def test_prepare(self, *args): +# self.assertEqual(self.test.prepare(), +# testcase.TestCase.EX_OK) +# args[0].assert_called_once_with() +# args[1].assert_called_once_with('test', self.tenant_name) +# args[2].assert_called_once_with( +# 'test', self.tenant_name, self.tenant_description) +# args[3].assert_called_once_with() + + @mock.patch('snaps.openstack.tests.openstack_tests.get_credentials', + return_value=OSCreds( + username='user', password='pass', + auth_url='http://foo.com:5000/v3', project_name='bar'), side_effect=Exception) def test_prepare_keystone_client_ko(self, *args): with self.assertRaises(vnf.VnfPreparationException): self.test.prepare() - args[0].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - side_effect=Exception) - def test_prepare_tenant_creation_ko(self, *args): - with self.assertRaises(vnf.VnfPreparationException): - self.test.prepare() - args[0].assert_called_once_with( - mock.ANY, self.tenant_name, self.tenant_description) - args[1].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=0) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - side_effect=Exception) - def test_prepare_user_creation_ko(self, *args): - with self.assertRaises(vnf.VnfPreparationException): - self.test.prepare() - args[0].assert_called_once_with(mock.ANY, self.tenant_name) - args[1].assert_called_once_with( - mock.ANY, self.tenant_name, self.tenant_description) - args[2].assert_called_once_with() + args[0].assert_called_once() + +# @mock.patch('snaps.openstack.tests.openstack_tests.get_credentials', +# return_value=OS_CREDS) +# @mock.patch('snaps.openstack.create_project.OpenStackProject') +# @mock.patch('snaps.openstack.create_project.OpenStackProject.create', +# side_effect=Exception) +# def test_prepare_tenant_creation_ko(self, *args): +# with self.assertRaises(vnf.VnfPreparationException): +# self.test.prepare() +# args[2].assert_called_once() +# args[1].assert_called_once_with(OS_CREDS, +# ProjectSettings( +# name=self.tenant_name, +# description=self.tenant_description, +# )) +# args[0].assert_called_once() + +# @mock.patch('snaps.openstack.tests.openstack_tests.get_credentials') +# @mock.patch('snaps.openstack.create_project.OpenStackProject', +# return_value=0) +# @mock.patch('snaps.openstack.create_user.OpenStackUser', +# side_effect=Exception) +# def test_prepare_user_creation_ko(self, *args): +# with self.assertRaises(vnf.VnfPreparationException): +# self.test.prepare() +# args[0].assert_called_once_with(mock.ANY, self.tenant_name) +# args[1].assert_called_once_with( +# mock.ANY, self.tenant_name, self.tenant_description) +# args[2].assert_called_once_with() if __name__ == "__main__": diff --git a/functest/tests/unit/vnf/ims/test_cloudify_ims.py b/functest/tests/unit/vnf/ims/test_cloudify_ims.py index f0483c69f..cdd657aac 100644 --- a/functest/tests/unit/vnf/ims/test_cloudify_ims.py +++ b/functest/tests/unit/vnf/ims/test_cloudify_ims.py @@ -13,8 +13,6 @@ import mock from functest.core import vnf from functest.opnfv_tests.vnf.ims import cloudify_ims -from snaps.openstack.os_credentials import OSCreds - class CloudifyImsTesting(unittest.TestCase): @@ -57,114 +55,10 @@ class CloudifyImsTesting(unittest.TestCase): 'vnf': {}, 'test_vnf': {}} - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_credentials', - return_value={'auth_url': 'test/v1'}) - @mock.patch('snaps.openstack.create_image.OpenStackImage.create') - def test_prepare_default(self, *args): - self.assertIsNone(self.ims_vnf.prepare()) - args[4].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_credentials', - return_value={'auth_url': 'test/no_v'}) - @mock.patch('snaps.openstack.create_image.OpenStackImage.create') - def test_prepare_bad_auth_url(self, *args): - with self.assertRaises(Exception): - self.ims_vnf.image_creator( - OSCreds(username='user', password='pass', auth_url='url', - project_name='project', identity_api_version=3), - mock.Mock()) - args[0].assert_not_called() - def test_prepare_missing_param(self): with self.assertRaises(vnf.VnfPreparationException): self.ims_vnf.prepare() - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - side_effect=Exception) - def test_prepare_keystone_exception(self, *args): - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[0].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - side_effect=Exception) - def test_prepare_tenant_exception(self, *args): - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[1].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - side_effect=Exception) - def test_prepare_user_exception(self, *args): - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[2].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_credentials', - side_effect=Exception) - def test_prepare_credentials_exception(self, *args): - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[0].assert_called_once_with() - - # @mock.patch('snaps.openstack.create_keypairs.OpenStackKeypair', - # side_effect=Exception) - # def test_deploy_orchestrator_keypair_exception(self, *args): - # with self.assertRaises(vnf.OrchestratorDeploymentException): - # self.ims_vnf.deploy_orchestrator() - - # def test_deploy_orchestrator_network_creation_fail(self): - # def test_deploy_orchestrator_floatting_ip_creation_fail(self): - # def test_deploy_orchestrator_flavor_fail(self): - # def test_deploy_orchestrator_get_image_id_fail(self): - # def test_deploy_orchestrator_create_instance_fail(self): - # def test_deploy_orchestrator_secgroup_fail(self): - # def test_deploy_orchestrator_add_floating_ip_fail(self): - # def test_deploy_orchestrator_get_endpoint_fail(self): - # def test_deploy_orchestrator_initiate CloudifyClient_fail(self): - # def test_deploy_orchestrator_get_status_fail(self): - # - - # def test_deploy_vnf(self): - # def test_deploy_vnf_publish_fail(self): - # def test_deploy_vnf_get_flavor_fail(self): - # def test_deploy_vnf_get_external_net_fail(self): - # def test_deploy_vnf_deployment_create_fail(self): - # def test_deploy_vnf_start_fail(self): - # - # def test_test_vnf(self): - # def test_test_vnf_deployment_get_fail(self): - # def test_test_vnf_run_live_test_fail(self): - # - # def test_clean(self): - # def test_clean_execution_start_fail(self): - # def test_clean_deployment_delete_fail(self): - # def test_clean_blueprint_delete_fail(self): - if __name__ == "__main__": logging.disable(logging.CRITICAL) diff --git a/functest/tests/unit/vnf/ims/test_orchestra_clearwaterims.py b/functest/tests/unit/vnf/ims/test_orchestra_clearwaterims.py index ef227ca43..2e83f30a4 100644 --- a/functest/tests/unit/vnf/ims/test_orchestra_clearwaterims.py +++ b/functest/tests/unit/vnf/ims/test_orchestra_clearwaterims.py @@ -11,7 +11,6 @@ import logging import unittest import mock -from snaps.openstack.os_credentials import OSCreds from functest.core import vnf from functest.opnfv_tests.vnf.ims import orchestra_clearwaterims @@ -110,117 +109,11 @@ class OrchestraClearwaterImsTesting(unittest.TestCase): 'vnf': {}, 'test_vnf': {}} - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_credentials', - return_value={'auth_url': 'test/v1'}) - @mock.patch( - 'functest.utils.openstack_utils.get_tenant_id', - return_value={'mocked_tenant_id'}) - @mock.patch( - 'functest.utils.openstack_utils.get_floating_ips', - return_value=[]) - @mock.patch('snaps.openstack.create_image.OpenStackImage.create') - @mock.patch('snaps.openstack.create_flavor.OpenStackFlavor.create') - @mock.patch( - 'snaps.openstack.create_security_group.OpenStackSecurityGroup.create') - @mock.patch('snaps.openstack.create_network.OpenStackNetwork.create') - @mock.patch('snaps.openstack.create_router.OpenStackRouter.create') - @mock.patch( - 'functest.opnfv_tests.openstack.snaps.snaps_utils.get_ext_net_name') - @mock.patch( - 'functest.opnfv_tests.openstack.snaps.' - 'snaps_utils.neutron_utils.create_floating_ip') - def test_prepare_default(self, *args): - """Testing prepare function without any exceptions expected""" - self.assertIsNone(self.ims_vnf.prepare()) - args[4].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_credentials', - return_value={'auth_url': 'test/no_v'}) - @mock.patch('snaps.openstack.create_image.OpenStackImage.create') - def test_prepare_bad_auth_url(self, *args): - """Testing prepare function with bad auth url""" - with self.assertRaises(Exception): - self.ims_vnf.image_creator( - OSCreds(username='user', password='pass', auth_url='url', - project_name='project', identity_api_version=3), - mock.Mock()) - args[0].assert_not_called() - def test_prepare_missing_param(self): """Testing prepare function with missing param""" with self.assertRaises(vnf.VnfPreparationException): self.ims_vnf.prepare() - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - side_effect=Exception) - def test_prepare_keystone_exception(self, *args): - """Testing prepare function with keystone exception""" - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[0].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - side_effect=Exception) - def test_prepare_tenant_exception(self, *args): - """Testing prepare function with tenant exception""" - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[1].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - side_effect=Exception) - def test_prepare_user_exception(self, *args): - """Testing prepare function with user exception""" - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[2].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_credentials', - side_effect=Exception) - def test_prepare_credentials_exception(self, *args): - """Testing prepare function with credentials exception""" - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[0].assert_called_once_with() - - # # @mock.patch('functest.opnfv_tests.vnf. - # ims.orchestra_clearwaterims.get_userdata') - # def test_deploy_orchestrator(self, *args): - # floating_ip = FloatingIp - # floating_ip.ip = 'mocked_ip' - # details = {'fip':floating_ip,'flavor':{'name':'mocked_name'}} - # self.mano['details'] = details - # with mock.patch.dict(self.mano, {'details': - # {'fip':floating_ip,'flavor':{'name':'mocked_name'}}}): - # # with mock.patch.dict(self.mano, details): - # orchestra_clearwaterims.get_userdata(self.mano) - # self.assertIsNone(self.ims_vnf.deploy_orchestrator()) - # args[4].assert_called_once_with() - if __name__ == "__main__": logging.disable(logging.CRITICAL) diff --git a/functest/tests/unit/vnf/ims/test_orchestra_openims.py b/functest/tests/unit/vnf/ims/test_orchestra_openims.py index 5911cf77b..47a8d0338 100644 --- a/functest/tests/unit/vnf/ims/test_orchestra_openims.py +++ b/functest/tests/unit/vnf/ims/test_orchestra_openims.py @@ -11,7 +11,6 @@ import logging import unittest import mock -from snaps.openstack.os_credentials import OSCreds from functest.core import vnf from functest.opnfv_tests.vnf.ims import orchestra_openims @@ -112,117 +111,11 @@ class OrchestraOpenImsTesting(unittest.TestCase): 'vnf': {}, 'test_vnf': {}} - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_credentials', - return_value={'auth_url': 'test/v1'}) - @mock.patch( - 'functest.utils.openstack_utils.get_tenant_id', - return_value={'mocked_tenant_id'}) - @mock.patch( - 'functest.utils.openstack_utils.get_floating_ips', - return_value=[]) - @mock.patch('snaps.openstack.create_image.OpenStackImage.create') - @mock.patch('snaps.openstack.create_flavor.OpenStackFlavor.create') - @mock.patch( - 'snaps.openstack.create_security_group.OpenStackSecurityGroup.create') - @mock.patch('snaps.openstack.create_network.OpenStackNetwork.create') - @mock.patch('snaps.openstack.create_router.OpenStackRouter.create') - @mock.patch( - 'functest.opnfv_tests.openstack.snaps.snaps_utils.get_ext_net_name') - @mock.patch( - 'functest.opnfv_tests.openstack.snaps.snaps_utils.' - 'neutron_utils.create_floating_ip') - def test_prepare_default(self, *args): - """Testing prepare function without any exceptions expected""" - self.assertIsNone(self.ims_vnf.prepare()) - args[4].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_credentials', - return_value={'auth_url': 'test/no_v'}) - @mock.patch('snaps.openstack.create_image.OpenStackImage.create') - def test_prepare_bad_auth_url(self, *args): - """Testing prepare function with bad auth url""" - with self.assertRaises(Exception): - self.ims_vnf.image_creator( - OSCreds(username='user', password='pass', auth_url='url', - project_name='project', identity_api_version=3), - mock.Mock()) - args[0].assert_not_called() - def test_prepare_missing_param(self): """Testing prepare function with missing param""" with self.assertRaises(vnf.VnfPreparationException): self.ims_vnf.prepare() - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - side_effect=Exception) - def test_prepare_keystone_exception(self, *args): - """Testing prepare function with keystone exception""" - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[0].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - side_effect=Exception) - def test_prepare_tenant_exception(self, *args): - """Testing prepare function with tenant exception""" - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[1].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - side_effect=Exception) - def test_prepare_user_exception(self, *args): - """Testing prepare function with user exception""" - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[2].assert_called_once_with() - - @mock.patch('functest.core.vnf.os_utils.get_keystone_client', - return_value='test') - @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf', - return_value=True) - @mock.patch('functest.core.vnf.os_utils.get_credentials', - side_effect=Exception) - def test_prepare_credentials_exception(self, *args): - """Testing prepare function with credentials exception""" - with self.assertRaises(vnf.VnfPreparationException): - self.ims_vnf.prepare() - args[0].assert_called_once_with() - - # # @mock.patch('functest.opnfv_tests. - # vnf.ims.orchestra_openims.get_userdata') - # def test_deploy_orchestrator(self, *args): - # floating_ip = FloatingIp - # floating_ip.ip = 'mocked_ip' - # details = {'fip':floating_ip,'flavor':{'name':'mocked_name'}} - # self.mano['details'] = details - # with mock.patch.dict(self.mano, {'details': - # {'fip':floating_ip,'flavor':{'name':'mocked_name'}}}): - # # with mock.patch.dict(self.mano, details): - # orchestra_openims.get_userdata(self.mano) - # self.assertIsNone(self.ims_vnf.deploy_orchestrator()) - # args[4].assert_called_once_with() - if __name__ == "__main__": logging.disable(logging.CRITICAL) -- cgit 1.2.3-korg