[cloudify_ims] Support Cloudify 4.0
[functest.git] / functest / tests / unit / vnf / ims / test_cloudify_ims.py
1 #!/usr/bin/env python\r
2 \r
3 # All rights reserved. This program and the accompanying materials\r
4 # are made available under the terms of the Apache License, Version 2.0\r
5 # which accompanies this distribution, and is available at\r
6 # http://www.apache.org/licenses/LICENSE-2.0\r
7 \r
8 import logging\r
9 import unittest\r
10 \r
11 import mock\r
12 \r
13 from functest.core import vnf\r
14 from functest.opnfv_tests.vnf.ims import cloudify_ims\r
15 \r
16 \r
17 class CloudifyImsTesting(unittest.TestCase):\r
18 \r
19     def setUp(self):\r
20 \r
21         self.tenant = 'cloudify_ims'\r
22         self.creds = {'username': 'user',\r
23                       'password': 'pwd'}\r
24         self.orchestrator = {'name': 'cloudify',\r
25                              'version': '4.0',\r
26                              'object': 'foo',\r
27                              'requirements': {'flavor': {'name': 'm1.medium',\r
28                                                          'ram_min': 4096},\r
29                                               'os_image': 'manager_4.0'}}\r
30 \r
31         self.vnf = {'name': 'clearwater',\r
32                     'descriptor': {'version': '108',\r
33                                    'file_name': 'openstack-blueprint.yaml',\r
34                                    'name': 'clearwater-opnfv',\r
35                                    'url': 'https://foo',\r
36                                    'requirements': {'flavor':\r
37                                                     {'name': 'm1.medium',\r
38                                                      'ram_min': 2048}}}}\r
39 \r
40         with mock.patch('functest.opnfv_tests.vnf.ims.cloudify_ims.'\r
41                         'os.makedirs'), \\r
42             mock.patch('functest.opnfv_tests.vnf.ims.cloudify_ims.'\r
43                        'get_config', return_value={\r
44                            'tenant_images': 'foo',\r
45                            'orchestrator': self.orchestrator,\r
46                            'vnf': self.vnf,\r
47                            'vnf_test_suite': '',\r
48                            'version': 'whatever'}):\r
49 \r
50             self.ims_vnf = cloudify_ims.CloudifyIms()\r
51 \r
52         self.images = {'image1': 'url1',\r
53                        'image2': 'url2'}\r
54         self.details = {'orchestrator': {'status': 'PASS', 'duration': 120},\r
55                         'vnf': {},\r
56                         'test_vnf':  {}}\r
57 \r
58     @mock.patch('functest.core.vnf.os_utils.get_keystone_client',\r
59                 return_value='test')\r
60     @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf',\r
61                 return_value=True)\r
62     @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf',\r
63                 return_value=True)\r
64     @mock.patch('functest.core.vnf.os_utils.get_credentials',\r
65                 return_value={'auth_url': 'test/v1'})\r
66     @mock.patch('snaps.openstack.create_image.OpenStackImage.create')\r
67     def test_prepare_default(self, *args):\r
68         self.assertIsNone(self.ims_vnf.prepare())\r
69         args[4].assert_called_once_with()\r
70 \r
71     @mock.patch('functest.core.vnf.os_utils.get_keystone_client',\r
72                 return_value='test')\r
73     @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf',\r
74                 return_value=True)\r
75     @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf',\r
76                 return_value=True)\r
77     @mock.patch('functest.core.vnf.os_utils.get_credentials',\r
78                 return_value={'auth_url': 'test/no_v'})\r
79     @mock.patch('snaps.openstack.create_image.OpenStackImage.create')\r
80     def test_prepare_bad_auth_url(self, *args):\r
81         with self.assertRaises(Exception):\r
82             self.ims_vnf.prepare()\r
83         args[0].assert_not_called()\r
84 \r
85     def test_prepare_missing_param(self):\r
86         with self.assertRaises(vnf.VnfPreparationException):\r
87             self.ims_vnf.prepare()\r
88 \r
89     @mock.patch('functest.core.vnf.os_utils.get_keystone_client',\r
90                 side_effect=Exception)\r
91     def test_prepare_keystone_exception(self, *args):\r
92         with self.assertRaises(vnf.VnfPreparationException):\r
93             self.ims_vnf.prepare()\r
94         args[0].assert_called_once_with()\r
95 \r
96     @mock.patch('functest.core.vnf.os_utils.get_keystone_client',\r
97                 return_value='test')\r
98     @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf',\r
99                 side_effect=Exception)\r
100     def test_prepare_tenant_exception(self, *args):\r
101         with self.assertRaises(vnf.VnfPreparationException):\r
102             self.ims_vnf.prepare()\r
103         args[1].assert_called_once_with()\r
104 \r
105     @mock.patch('functest.core.vnf.os_utils.get_keystone_client',\r
106                 return_value='test')\r
107     @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf',\r
108                 return_value=True)\r
109     @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf',\r
110                 side_effect=Exception)\r
111     def test_prepare_user_exception(self, *args):\r
112         with self.assertRaises(vnf.VnfPreparationException):\r
113             self.ims_vnf.prepare()\r
114         args[2].assert_called_once_with()\r
115 \r
116     @mock.patch('functest.core.vnf.os_utils.get_keystone_client',\r
117                 return_value='test')\r
118     @mock.patch('functest.core.vnf.os_utils.get_or_create_tenant_for_vnf',\r
119                 return_value=True)\r
120     @mock.patch('functest.core.vnf.os_utils.get_or_create_user_for_vnf',\r
121                 return_value=True)\r
122     @mock.patch('functest.core.vnf.os_utils.get_credentials',\r
123                 side_effect=Exception)\r
124     def test_prepare_credentials_exception(self, *args):\r
125         with self.assertRaises(vnf.VnfPreparationException):\r
126             self.ims_vnf.prepare()\r
127         args[0].assert_called_once_with()\r
128 \r
129     # @mock.patch('snaps.openstack.create_keypairs.OpenStackKeypair',\r
130     #             side_effect=Exception)\r
131     # def test_deploy_orchestrator_keypair_exception(self, *args):\r
132     #    with self.assertRaises(vnf.OrchestratorDeploymentException):\r
133     #        self.ims_vnf.deploy_orchestrator()\r
134 \r
135     #   def test_deploy_orchestrator_network_creation_fail(self):\r
136     #   def test_deploy_orchestrator_floatting_ip_creation_fail(self):\r
137     #   def test_deploy_orchestrator_flavor_fail(self):\r
138     #   def test_deploy_orchestrator_get_image_id_fail(self):\r
139     #   def test_deploy_orchestrator_create_instance_fail(self):\r
140     #   def test_deploy_orchestrator_secgroup_fail(self):\r
141     #   def test_deploy_orchestrator_add_floating_ip_fail(self):\r
142     #   def test_deploy_orchestrator_get_endpoint_fail(self):\r
143     #   def test_deploy_orchestrator_initiate CloudifyClient_fail(self):\r
144     #   def test_deploy_orchestrator_get_status_fail(self):\r
145     #\r
146 \r
147     #   def test_deploy_vnf(self):\r
148     #   def test_deploy_vnf_publish_fail(self):\r
149     #   def test_deploy_vnf_get_flavor_fail(self):\r
150     #   def test_deploy_vnf_get_external_net_fail(self):\r
151     #   def test_deploy_vnf_deployment_create_fail(self):\r
152     #   def test_deploy_vnf_start_fail(self):\r
153     #\r
154     #   def test_test_vnf(self):\r
155     #   def test_test_vnf_deployment_get_fail(self):\r
156     #   def test_test_vnf_run_live_test_fail(self):\r
157     #\r
158     #   def test_clean(self):\r
159     #   def test_clean_execution_start_fail(self):\r
160     #   def test_clean_deployment_delete_fail(self):\r
161     #   def test_clean_blueprint_delete_fail(self):\r
162 \r
163 \r
164 if __name__ == "__main__":\r
165     logging.disable(logging.CRITICAL)\r
166     unittest.main(verbosity=2)\r