Add catalog UT for vnfd parse 79/14779/1
authorfujinhua <fu.jinhua@zte.com.cn>
Sat, 23 Sep 2017 02:10:19 +0000 (10:10 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Sat, 23 Sep 2017 02:10:19 +0000 (10:10 +0800)
Change-Id: I8b4965c852f1293c68b1ac5b20d67a06662e8efa
Issue-Id: VFC-439
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
catalog/packages/nf_package.py
catalog/packages/tests/test_nf.py

index f86f679..a0e163a 100644 (file)
@@ -58,9 +58,10 @@ def parse_vnfd(csar_id, inputs):
     ret= None
     try:
         nf_pkg = VnfPackageModel.objects.filter(vnfPackageId=csar_id)
-        if nf_pkg:
-             csar_path = nf_pkg[0].localFilePath
-             ret = {"model": toscaparser.parse_vnfd(csar_path, inputs)}
+        if not nf_pkg:
+            raise CatalogException("VNF CSAR(%s) does not exist." % csar_id)
+        csar_path = nf_pkg[0].localFilePath
+        ret = {"model": toscaparser.parse_vnfd(csar_path, inputs)}
     except CatalogException as e:
         return [1, e.message]
     except:
index 657806f..0e82d3e 100644 (file)
@@ -343,3 +343,9 @@ class TestNfPackage(TestCase):
             {"csarId": "8", "inputs": []}, format='json')
         self.assertEqual(resp.status_code, status.HTTP_202_ACCEPTED)
         self.assertEqual({"model": '{"c": "d"}'}, resp.data)
+
+    def test_vnfd_parse_when_csar_not_exist(self):
+        resp = self.client.post("/api/catalog/v1/parservnfd", 
+            {"csarId": "1", "inputs": []}, format='json')
+        self.assertEqual(resp.status_code, status.HTTP_500_INTERNAL_SERVER_ERROR)
+        self.assertEqual(resp.data, {"error": "VNF CSAR(1) does not exist."})