Deal with nfPackage 69/63169/2
authorbiancunkang <bian.cunkang@zte.com.cn>
Tue, 28 Aug 2018 01:20:25 +0000 (09:20 +0800)
committerbiancunkang <bian.cunkang@zte.com.cn>
Tue, 28 Aug 2018 01:26:14 +0000 (09:26 +0800)
Add a test

Change-Id: I5b164914682ac410a1a5e16bcf0a80171a305401
Issue-ID: VFC-1038
Signed-off-by: biancunkang <bian.cunkang@zte.com.cn>
catalog/packages/biz/vnf_package.py
catalog/packages/tests/test_vnf_package.py

index d3f1f58..da5cc56 100644 (file)
@@ -22,7 +22,7 @@ import urllib2
 import uuid
 
 from rest_framework import status
-from django.http import FileResponse, StreamingHttpResponse
+from django.http import StreamingHttpResponse
 from catalog.pub.config.config import CATALOG_ROOT_PATH
 from catalog.pub.database.models import VnfPackageModel
 from catalog.pub.exceptions import CatalogException
@@ -188,9 +188,9 @@ def fetch_vnf_pkg(request, vnf_pkg_id):
         f.seek(start, 0)
         fs = f.read(end - start + 1)
         response = StreamingHttpResponse(fs, status=status.HTTP_200_OK)
-        response['Content-Type'] = 'application/octet-stream'
         response['Content-Range'] = file_range
     else:
-        response = FileResponse(open(file_path, 'rb'), status=status.HTTP_200_OK)
+        response = StreamingHttpResponse(open(file_path, 'rb'), status=status.HTTP_200_OK)
+    response['Content-Type'] = 'application/octet-stream'
     response['Content-Disposition'] = 'attachment; filename=%s' % file_name.encode('utf-8')
     return response
index efde444..fb3a5de 100644 (file)
@@ -411,7 +411,20 @@ class TestVnfPackage(TestCase):
         self.assertEqual(response.data, None)
 
     def test_fetch_vnf_pkg(self):
-        pass
+        with open("vnfPackage.csar", "wb") as fp:
+            fp.writelines("AAAABBBBCCCCDDDD")
+        VnfPackageModel.objects.create(
+            vnfPackageId="222",
+            onboardingState="ONBOARDED",
+            localFilePath="vnfPackage.csar"
+        )
+        response = self.client.get("/api/vnfpkgm/v1/vnf_packages/222/package_content")
+        partial_file_content = ''
+        for data in response.streaming_content:
+            partial_file_content = partial_file_content + data
+        self.assertEqual(response.status_code, status.HTTP_200_OK)
+        self.assertEqual('AAAABBBBCCCCDDDD', partial_file_content)
+        os.remove("vnfPackage.csar")
 
     def test_fetch_partical_vnf_pkg(self):
         with open("vnfPackage.csar", "wb") as fp: