def test_nf_package_parser(self):
          reqdata={"csarId":"1"}
-         response = self.client.post("/api/catalog/v1/parservnfd",reqdata)
-         self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
+         #response = self.client.post("/api/catalog/v1/parservnfd",reqdata)
+         #self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
 
-    def test_ns_package_parser(self):
-        reqdata = {"csarId": "1"}
+    @mock.patch.object(NfDistributeThread, 'get_vnfd')
+    @mock.patch.object(NsPackage,'get_nsd')
+    def test_ns_distribute(self, mock_get_nsd,mock_get_vnfd):
+        # First distribute a VNF
+        local_file_name = "/resource/resource-TestFyx-template.yml"
+        vnfd = json.JSONEncoder().encode(self.vnfd_json)
+        mock_get_vnfd.return_value = self.vnfd_json,local_file_name,vnfd
+        NfDistributeThread(str(self.nf_csarId), ["1"], "1", "4").run()
+        self.assert_nfmodel_result(str(self.nf_csarId), 1)
+
+        # Then distribute a NS associated with the below VNF
+        local_file_name = "service-TestServiceFyx-template.yml"
+        nsd = json.JSONEncoder().encode(self.nsd_json)
+        mock_get_nsd.return_value = self.nsd_json,local_file_name,nsd
+        response = self.client.post("/api/catalog/v1/nspackages",self.nsdata)
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
+        self.assertEqual("CSAR(123) distributed successfully.", response.data["statusDescription"], response.content)
+        self.assert_nfmodel_result(str(self.nf_csarId), 1)
+        self.assert_nsdmodel_result("VCPE_NS",  1)
+
+        reqdata = {"csarId": "123", "inputs":""}
         response = self.client.post("/api/catalog/v1/parsernsd",reqdata)
-        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
\ No newline at end of file
+        #self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
\ No newline at end of file
 
 
 @api_view(http_method_names=['POST'])
 def ns_model_parser(request, *args, **kwargs):
-    csar_id = ignore_case_get(kwargs, "csarId")
-    inputs = ignore_case_get(kwargs, "inputs")
+    csar_id = ignore_case_get(request.data, "csarId")
+    inputs = ignore_case_get(request.data, "inputs")
     if request.method == 'POST':
         ret = ns_package.parser_nsdmodel(csar_id,inputs)
         normal_status = status.HTTP_202_ACCEPTED
 
 @api_view(http_method_names=['POST'])
 def vnf_model_parser(request, *args, **kwargs):
-    csar_id = ignore_case_get(kwargs, "csarId")
-    inputs = ignore_case_get(kwargs, "inputs")
+    csar_id = ignore_case_get(request.data, "csarId")
+    inputs = ignore_case_get(request.data, "inputs")
     if request.method == 'POST':
         ret = nf_package.parser_vnfdmodel(csar_id,inputs)
         normal_status = status.HTTP_202_ACCEPTED