Add test for vnf package 29/63929/2
authorbiancunkang <bian.cunkang@zte.com.cn>
Fri, 31 Aug 2018 02:21:29 +0000 (10:21 +0800)
committerbiancunkang <bian.cunkang@zte.com.cn>
Fri, 31 Aug 2018 02:28:05 +0000 (10:28 +0800)
Change-Id: I18350e3729d4ad5ff3f047c8c272d64723cdac29
Issue-ID: VFC-1038
Signed-off-by: biancunkang <bian.cunkang@zte.com.cn>
catalog/packages/tests/test_pnf_descriptor.py
catalog/packages/tests/test_vnf_package.py
catalog/packages/views/ns_descriptor_views.py

index 0b8ce10..6d02bc1 100644 (file)
@@ -26,7 +26,6 @@ from catalog.pub.database.models import PnfPackageModel, NSPackageModel
 from catalog.pub.utils import toscaparser
 from catalog.packages.const import PKG_STATUS
 from catalog.packages.tests.const import pnfd_data
-from catalog.pub.config.config import CATALOG_ROOT_PATH
 from catalog.packages.biz.pnf_descriptor import PnfPackage
 
 
@@ -155,8 +154,6 @@ class TestPnfDescriptor(TestCase):
         self.assertEqual(resp.status_code, status.HTTP_204_NO_CONTENT)
         self.assertEqual(None, resp.data)
         os.remove('pnfd_content.txt')
-        os.remove(pnf_pkg[0].localFilePath)
-        os.removedirs(os.path.join(CATALOG_ROOT_PATH, pnf_pkg[0].pnfPackageId))
 
     def test_pnfd_content_upload_when_pnf_not_exist(self):
         with open('pnfd_content.txt', 'wb') as fp:
index 2760fde..1bfafa7 100644 (file)
@@ -58,9 +58,6 @@ class TestVnfPackage(TestCase):
         self.assertEqual(PKG_STATUS.ONBOARDED, vnf_pkg[0].onboardingState)
         self.assertEqual(response.status_code, status.HTTP_202_ACCEPTED)
 
-        os.remove(vnf_pkg[0].localFilePath)
-        os.removedirs(os.path.join(CATALOG_ROOT_PATH, vnf_pkg[0].vnfPackageId))
-
     def test_upload_vnf_pkg_failed(self):
         data = {'file': open(os.path.join(CATALOG_ROOT_PATH, "empty.txt"), "rb")}
         VnfPackageModel.objects.create(
@@ -84,8 +81,10 @@ class TestVnfPackage(TestCase):
         vnf_pkg1 = VnfPackageModel.objects.filter(vnfPackageId="222")
         self.assertEqual("zte-hss-1.0", vnf_pkg1[0].vnfdId)
 
-        os.remove(vnf_pkg1[0].localFilePath)
-        os.removedirs(os.path.join(CATALOG_ROOT_PATH, vnf_pkg1[0].vnfPackageId))
+    def test_upload_from_uri_failed(self):
+        req_data = {"username": "123"}
+        response = self.client.post("/api/vnfpkgm/v1/vnf_packages/111/package_content/upload_from_uri", data=req_data)
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
 
     def test_create_vnf_pkg(self):
         req_data = {
@@ -263,6 +262,15 @@ class TestVnfPackage(TestCase):
         response = self.client.get("/api/vnfpkgm/v1/vnf_packages/222/package_content")
         self.assertEqual(response.status_code, status.HTTP_404_NOT_FOUND)
 
+    def test_fetch_vnf_pkg_when_catch_cataloge_exception(self):
+        VnfPackageModel.objects.create(
+            vnfPackageId="222",
+            onboardingState="CREATED",
+            localFilePath="vnfPackage.csar"
+        )
+        response = self.client.get("/api/vnfpkgm/v1/vnf_packages/222/package_content")
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+
     @mock.patch.object(VnfPackage, "create_vnf_pkg")
     def test_create_vnf_pkg_when_catch_exception(self, mock_create_vnf_pkg):
         mock_create_vnf_pkg.side_effect = TypeError('integer type')
@@ -300,3 +308,16 @@ class TestVnfPackage(TestCase):
         mock_parse_vnfd.side_effect = TypeError("integer type")
         response = self.client.put("/api/vnfpkgm/v1/vnf_packages/222/package_content", data=data)
         self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+
+    @mock.patch.object(VnfPkgUploadThread, 'start')
+    def test_upload_from_uri_when_catch_exception(self, mock_start):
+        req_data = {"addressInformation": "https://127.0.0.1:1234/sdc/v1/hss.csar"}
+        mock_start.side_effect = TypeError("integer type")
+        response = self.client.post("/api/vnfpkgm/v1/vnf_packages/111/package_content/upload_from_uri", data=req_data)
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+
+    @mock.patch.object(VnfPackage, 'fetch_vnf_pkg')
+    def test_fetch_vnf_pkg_when_catch_exception(self, mock_fetch_vnf_pkg):
+        mock_fetch_vnf_pkg.side_effect = TypeError("integer type")
+        response = self.client.get("/api/vnfpkgm/v1/vnf_packages/222/package_content")
+        self.assertEqual(response.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
index a1df687..30fe6e9 100644 (file)
@@ -216,5 +216,5 @@ def validate_data(data, serializer):
     serialized_data = serializer(data=data)
     if not serialized_data.is_valid():
         logger.error('Data validation failed.')
-        raise CatalogException(serialized_data.error)
+        raise CatalogException(serialized_data.errors)
     return serialized_data