Refactor codes for delete vnf ut
[vfc/gvnfm/vnflcm.git] / lcm / lcm / nf / tests / test_delete_vnf.py
1 # Copyright 2017 ZTE Corporation.
2 #
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
6 #
7 #         http://www.apache.org/licenses/LICENSE-2.0
8 #
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.
14
15
16 from django.test import TestCase, Client
17 from rest_framework import status
18
19 from lcm.pub.database.models import NfInstModel
20 from lcm.pub.database.models import JobStatusModel
21 from lcm.pub.database.models import VmInstModel
22 from lcm.pub.database.models import NetworkInstModel
23 from lcm.pub.database.models import SubNetworkInstModel
24 from lcm.pub.database.models import PortInstModel
25 from lcm.pub.database.models import FlavourInstModel
26 from lcm.pub.database.models import StorageInstModel
27 from lcm.pub.database.models import NfvoRegInfoModel
28 from lcm.pub.utils.timeutil import now_time
29
30
31 class TestNFTerminate(TestCase):
32     def setUp(self):
33         self.client = Client()
34         StorageInstModel.objects.create(
35             storageid="1",
36             vimid="1",
37             resourceid="11",
38             insttype=0,
39             instid="1111",
40             is_predefined=1
41         )
42         NetworkInstModel.objects.create(
43             networkid='1',
44             vimid='1',
45             resourceid='1',
46             name='pnet_network',
47             is_predefined=1,
48             tenant='admin',
49             insttype=0,
50             instid='1111'
51         )
52         SubNetworkInstModel.objects.create(
53             subnetworkid='1',
54             vimid='1',
55             resourceid='1',
56             networkid='1',
57             is_predefined=1,
58             name='sub_pnet',
59             tenant='admin',
60             insttype=0,
61             instid='1111'
62         )
63         PortInstModel.objects.create(
64             portid='1',
65             networkid='1',
66             subnetworkid='1',
67             vimid='1',
68             resourceid='1',
69             is_predefined=1,
70             name='aaa_pnet_cp',
71             tenant='admin',
72             insttype=0,
73             instid='1111'
74         )
75         FlavourInstModel.objects.create(
76             flavourid="1",
77             vimid="1",
78             resourceid="11",
79             instid="1111",
80             is_predefined=1
81         )
82         VmInstModel.objects.create(
83             vmid="1",
84             vimid="1",
85             resourceid="11",
86             insttype=0,
87             instid="1111",
88             vmname="test_01",
89             is_predefined=1,
90             operationalstate=1
91         )
92         NfvoRegInfoModel.objects.create(
93             nfvoid='1111',
94             vnfminstid='11111',
95             apiurl='1'
96         )
97
98     def tearDown(self):
99         VmInstModel.objects.all().delete()
100         NetworkInstModel.objects.all().delete()
101         SubNetworkInstModel.objects.all().delete()
102         PortInstModel.objects.all().delete()
103
104     def assert_job_result(self, job_id, job_progress, job_detail):
105         jobs = JobStatusModel.objects.filter(
106             jobid=job_id,
107             progress=job_progress,
108             descp=job_detail
109         )
110         self.assertEqual(1, len(jobs))
111
112     def test_delete_vnf_identifier(self):
113         NfInstModel.objects.create(
114             nfinstid='1111',
115             nf_name='2222',
116             package_id='todo',
117             version='',
118             vendor='',
119             netype='',
120             vnfd_model='',
121             status='NOT_INSTANTIATED',
122             nf_desc='',
123             vnfdid='',
124             vnfSoftwareVersion='',
125             vnfConfigurableProperties='todo',
126             localizationLanguage='EN_US',
127             create_time=now_time()
128         )
129         response = self.client.delete("/api/vnflcm/v1/vnf_instances/1111")
130         self.failUnlessEqual(status.HTTP_204_NO_CONTENT, response.status_code)
131         self.assertEqual(None, response.data)
132
133     def test_delete_vnf_identifier_when_vnf_not_exist(self):
134         response = self.client.delete("/api/vnflcm/v1/vnf_instances/1111")
135         self.failUnlessEqual(status.HTTP_204_NO_CONTENT, response.status_code)