diff options
author | 2017-09-12 22:49:21 +0530 | |
---|---|---|
committer | 2017-12-11 13:51:52 +0100 | |
commit | 00315cbac45bdffe0cfd3174a4b0871ccb610b97 (patch) | |
tree | 382caa3f197947fe3a39690527bc467ae6bc4481 /functest/tests/unit/vnf | |
parent | 41a81e7f5ca5d3733e6e5655f5ece7859ce9f49b (diff) |
vEPC tests with juju as an VNF manager
juju_epc testcase validate EPC setup with the help of ABoT which
acting as test executor. Functest-abot-epc-bundle deploys OAI charms
alongwith mysql and ABoT. JUJU is acting as a VNF manager.
Change-Id: I45d7b37f21f6b8c7049ab2bf42a4678e30b67a72
Signed-off-by: soumaya <soumaya.nayek@rebaca.com>
Diffstat (limited to 'functest/tests/unit/vnf')
-rw-r--r-- | functest/tests/unit/vnf/epc/test_juju_epc.py | 95 |
1 files changed, 95 insertions, 0 deletions
diff --git a/functest/tests/unit/vnf/epc/test_juju_epc.py b/functest/tests/unit/vnf/epc/test_juju_epc.py new file mode 100644 index 00000000..2b745312 --- /dev/null +++ b/functest/tests/unit/vnf/epc/test_juju_epc.py @@ -0,0 +1,95 @@ +#!/usr/bin/env python + +# Copyright (c) 2017 Rebaca 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 + +""" Unit test testcase for JuJu EPC Implementation""" + +import logging +import unittest + +import mock + +from functest.opnfv_tests.vnf.epc import juju_epc + + +class JujuEpcTesting(unittest.TestCase): + + """Unittest for ABoT EPC with juju orchestrator""" + + def setUp(self): + + self.tenant = 'juju_epc' + self.creds = {'username': 'user', + 'password': 'pwd'} + self.orchestrator = {'name': 'juju', + 'version': '2.0', + 'object': 'foo', + 'requirements': {'flavor': {'name': 'm1.small', + 'ram_min': 2048}, + 'pip': 'python3-pip', + 'repo_link': 'ppa:juju/stable', + 'dep_package': 'software-' + 'properties' + '-common', + 'pip3_packages': 'juju-wait'}} + self.vnf = {'name': 'juju_epc', + 'descriptor': {'version': '1', + 'file_name': '/src/epc-test/' + 'abot_charm/' + 'functest-abot-' + 'epc-bundle/bundle.yaml', + 'name': 'abot-oai-epc', + 'requirements': {'flavor': + {'name': 'm1.medium', + 'ram_min': 4096}}}} + with mock.patch('functest.opnfv_tests.vnf.epc.juju_epc.os.makedirs'), \ + mock.patch('functest.opnfv_tests.vnf.epc.juju_epc.get_config', + return_value={'tenant_images': 'foo', + 'orchestrator': self.orchestrator, + 'vnf': self.vnf, 'vnf_test_suite': '', + 'version': 'whatever'}), \ + mock.patch('functest.utils.openstack_utils.get_keystone_client', + return_value='test'), \ + mock.patch('functest.utils.openstack_utils.get_glance_client', + return_value='test'), \ + mock.patch('functest.utils.openstack_utils.get_neutron_client', + return_value='test'), \ + mock.patch('functest.utils.openstack_utils.get_nova_client', + return_value='test'): + self.epc_vnf = juju_epc.JujuEpc() + + self.images = {'image1': 'url1', + 'image2': 'url2'} + self.details = {'orchestrator': {'status': 'PASS', 'duration': 120}, + 'vnf': {}, + 'test_vnf': {}} + + @mock.patch('functest.utils.openstack_utils.get_keystone_client', + return_value='test') + @mock.patch('functest.utils.openstack_utils.get_or_create_tenant_for_vnf', + return_value=True) + @mock.patch('functest.utils.openstack_utils.get_or_create_user_for_vnf', + return_value=True) + @mock.patch('functest.utils.openstack_utils.get_credentials', + return_value={'auth_url': 'test/v1', + 'project_name': 'test_tenant'}) + @mock.patch('snaps.openstack.create_image.OpenStackImage.create') + @mock.patch('os.system') + def test_prepare_default(self, *args): + """ Unittest for Prepare testcase """ + self.epc_vnf.orchestrator = self.orchestrator + self.assertIsNone(self.epc_vnf.prepare()) + args[4].assert_called_once_with('test', + 'debayan', + 'OAI EPC deployed ' + 'with Juju') + + +if __name__ == "__main__": + logging.disable(logging.CRITICAL) + unittest.main(verbosity=2) |