1 # Copyright (C) 2018 Verizon. All Rights Reserved
3 # Licensed under the Apache License, Version 2.0 (the "License");
4 # you may not use this file except in compliance with the License.
5 # You may obtain a copy of the License at
7 # http://www.apache.org/licenses/LICENSE-2.0
9 # Unless required by applicable law or agreed to in writing, software
10 # distributed under the License is distributed on an "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 # See the License for the specific language governing permissions and
13 # limitations under the License.
18 from django.test import TestCase, Client
19 from rest_framework import status
21 from lcm.pub.database.models import VNFLcmOpOccModel
22 from .const import single_vnf_lcm_op
23 from .const import vnflcmop_with_exclude_default
24 from .const import multiple_vnf_lcm_op
27 class TestVNFLcmOpOccs(TestCase):
29 self.client = Client()
30 self.vnf_lcm_op_occ_id = "99442b18-a5c7-11e8-998c-bf1755941f16"
31 VNFLcmOpOccModel.objects.all().delete()
32 self.test_single_vnf_lcm_op = single_vnf_lcm_op
33 self.test_vnflcmop_with_exclude_default = vnflcmop_with_exclude_default
34 self.test_multiple_vnf_lcm_op = copy.copy(multiple_vnf_lcm_op)
35 self.test_multiple_vnf_lcm_op.append(self.test_single_vnf_lcm_op)
41 def test_get_vnflcmopoccs(self):
42 lcm_op_id = "99442b18-a5c7-11e8-998c-bf1755941f16"
43 vnf_instance_id = "cd552c9c-ab6f-11e8-b354-236c32aa91a1"
46 operation_state="STARTING",
47 state_entered_time="2018-07-09",
48 start_time="2018-07-09",
49 vnf_instance_id=vnf_instance_id,
52 is_automatic_invocation=False,
53 operation_params='{}',
54 is_cancel_pending=False,
57 resource_changes=None,
58 changed_ext_connectivity=None,
65 response = self.client.get(
66 "/api/vnflcm/v1/vnf_lcm_op_occs",
75 [self.test_single_vnf_lcm_op],
79 def test_get_vnflcmopoccs_with_id_not_exist(self):
80 response = self.client.get(
81 "/api/vnflcm/v1/vnf_lcm_op_occs?id=dummy",
86 status.HTTP_500_INTERNAL_SERVER_ERROR
90 "detail": "LCM Operation Occurances do not exist"
97 def test_get_vnflcmopoccs_with_filters(self):
98 lcm_op_id = "a6b9415c-ab99-11e8-9d37-dbb5e0378955"
99 vnf_instance_id = "cd552c9c-ab6f-11e8-b354-236c32aa91a1"
102 operation_state="STARTING",
103 state_entered_time="2018-07-09",
104 start_time="2018-07-09",
105 vnf_instance_id=vnf_instance_id,
107 operation="INSTANTIATE",
108 is_automatic_invocation=False,
109 operation_params='{}',
110 is_cancel_pending=False,
113 resource_changes=None,
114 changed_ext_connectivity=None,
119 "vnfInstance": "demo"
122 lcm_op_id = "99442b18-a5c7-11e8-998c-bf1755941f16"
125 operation_state="STARTING",
126 state_entered_time="2018-07-09",
127 start_time="2018-07-09",
128 vnf_instance_id=vnf_instance_id,
131 is_automatic_invocation=False,
132 operation_params='{}',
133 is_cancel_pending=False,
136 resource_changes=None,
137 changed_ext_connectivity=None,
142 "vnfInstance": "demo"
144 response = self.client.get(
145 "/api/vnflcm/v1/vnf_lcm_op_occs",
149 response.status_code,
154 self.test_multiple_vnf_lcm_op,
158 response = self.client.get(
159 "/api/vnflcm/v1/vnf_lcm_op_occs?operation=SCALE",
163 response.status_code,
167 [self.test_single_vnf_lcm_op],
171 response = self.client.get(
172 "/api/vnflcm/v1/vnf_lcm_op_occs?vnfInstanceId=%s" % vnf_instance_id,
176 response.status_code,
180 self.test_multiple_vnf_lcm_op,
184 def test_get_vnflcmopoccs_with_extra_flags(self):
185 lcm_op_id = "99442b18-a5c7-11e8-998c-bf1755941f16"
186 vnf_instance_id = "cd552c9c-ab6f-11e8-b354-236c32aa91a1"
189 operation_state="STARTING",
190 state_entered_time="2018-07-09",
191 start_time="2018-07-09",
192 vnf_instance_id=vnf_instance_id,
195 is_automatic_invocation=False,
196 operation_params='{}',
197 is_cancel_pending=False,
200 resource_changes=None,
201 changed_ext_connectivity=None,
206 "vnfInstance": "demo"
208 response = self.client.get(
209 "/api/vnflcm/v1/vnf_lcm_op_occs?exclude_default",
213 response.status_code,
218 self.test_vnflcmop_with_exclude_default,
222 def test_get_vnflcmopocc_with_id(self):
223 lcm_op_id = "99442b18-a5c7-11e8-998c-bf1755941f16"
224 vnf_instance_id = "cd552c9c-ab6f-11e8-b354-236c32aa91a1"
227 operation_state="STARTING",
228 state_entered_time="2018-07-09",
229 start_time="2018-07-09",
230 vnf_instance_id=vnf_instance_id,
233 is_automatic_invocation=False,
234 operation_params='{}',
235 is_cancel_pending=False,
238 resource_changes=None,
239 changed_ext_connectivity=None,
244 "vnfInstance": "demo"
246 response = self.client.get(
247 "/api/vnflcm/v1/vnf_lcm_op_occs/%s" % lcm_op_id,
251 response.status_code,
256 self.test_single_vnf_lcm_op,
260 def test_single_vnflcmopocc_with_unknown_id(self):
261 lcm_op_id = "99442b18-a5c7-11e8-998c-bf1755941f16"
262 response = self.client.get(
263 "/api/vnflcm/v1/vnf_lcm_op_occs/%s" % lcm_op_id,
267 response.status_code,
268 status.HTTP_500_INTERNAL_SERVER_ERROR
272 "detail": "LCM Operation Occurance does not exist"