fix VNF query result none exception
[vfc/gvnfm/vnflcm.git] / lcm / lcm / nf / tests / test_query_vnf.py
index ccb40c0..2582423 100644 (file)
@@ -15,7 +15,8 @@
 from django.test import TestCase, Client
 from rest_framework import status
 
-from lcm.pub.database.models import NfInstModel, StorageInstModel
+from lcm.pub.database.models import (NfInstModel, VLInstModel,
+                                     VNFCInstModel, VmInstModel, StorageInstModel)
 
 
 class ResourceTest(TestCase):
@@ -115,13 +116,43 @@ class ResourceTest(TestCase):
         NfInstModel(nfinstid=vnf_inst_id, nf_name='VNF1', status='INSTANTIATED').save()
         StorageInstModel(storageid='s02',
                          vimid='vim01',
-                         resouceid='resource01',
+                         resourceid='resource01',
                          insttype=1,
                          instid=vnf_inst_id).save()
         response = self.client.get("/api/vnflcm/v1/vnf_instances/%s" % vnf_inst_id, format='json')
         self.assertEqual(response.status_code, status.HTTP_200_OK)
         self.assertEqual(self.test_data_single_vnf, response.data)
 
+    def test_get_vnf_not_exist(self):
+        response = self.client.get("/api/vnflcm/v1/vnf_instances/x", format='json')
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+        self.assertEqual({'error': 'VnfInst(x) does not exist.'}, response.data)
+
+    def test_get_vnf_net_not_exist(self):
+        vnf_inst_id = "1"
+        NfInstModel(nfinstid=vnf_inst_id, nf_name='VNF1', status='INSTANTIATED').save()
+        VLInstModel(ownerid=vnf_inst_id, relatednetworkid='x', ownertype='0').save()
+        response = self.client.get("/api/vnflcm/v1/vnf_instances/%s" % vnf_inst_id, format='json')
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+        self.assertEqual({'error': 'NetworkInst(x) does not exist.'}, response.data)
+
+    def test_get_vnf_vm_not_exist(self):
+        vnf_inst_id = "1"
+        NfInstModel(nfinstid=vnf_inst_id, nf_name='VNF1', status='INSTANTIATED').save()
+        VNFCInstModel(instid=vnf_inst_id, vmid='x').save()
+        response = self.client.get("/api/vnflcm/v1/vnf_instances/%s" % vnf_inst_id, format='json')
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+        self.assertEqual({'error': 'VmInst(x) does not exist.'}, response.data)
+
+    def test_get_vnf_storage_not_exist(self):
+        vnf_inst_id = "1"
+        NfInstModel(nfinstid=vnf_inst_id, nf_name='VNF1', status='INSTANTIATED').save()
+        VNFCInstModel(instid=vnf_inst_id,
+                      vmid='x',).save()
+        VmInstModel(vmid='x', insttype='0').save()
+        response = self.client.get("/api/vnflcm/v1/vnf_instances/%s" % vnf_inst_id, format='json')
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+
     def test_get_vnfs(self):
         for i in range(1, 3):
             NfInstModel(nfinstid='%s' % i,
@@ -129,9 +160,13 @@ class ResourceTest(TestCase):
                         status='INSTANTIATED').save()
             StorageInstModel(storageid='s0%s' % i,
                              vimid='vim0%s' % i,
-                             resouceid='resource0%s' % i,
+                             resourceid='resource0%s' % i,
                              insttype=1,
                              instid='%s' % i).save()
         response = self.client.get("/api/vnflcm/v1/vnf_instances", format='json')
         self.failUnlessEqual(status.HTTP_200_OK, response.status_code)
         self.assertEqual(self.test_data_multi_vnf, response.data)
+
+    def test_get_vnfs_not_exist(self):
+        response = self.client.get("/api/vnflcm/v1/vnf_instances", format='json')
+        self.assertEqual(response.status_code, status.HTTP_200_OK)