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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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):
# pylint: disable=missing-docstring
"""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)
|