Add test cases for delopy workflow 41/8141/1
authorfujinhua <fu.jinhua@zte.com.cn>
Mon, 21 Aug 2017 07:29:11 +0000 (15:29 +0800)
committerfujinhua <fu.jinhua@zte.com.cn>
Mon, 21 Aug 2017 07:29:11 +0000 (15:29 +0800)
Change-Id: I3ffacc2f4269929c97aa3774e8fc5b8ff36f28a4
Issue-Id: VFC-111
Signed-off-by: fujinhua <fu.jinhua@zte.com.cn>
lcm/workflows/tests.py

index 564472e..0562fb7 100644 (file)
@@ -20,10 +20,12 @@ from django.test import Client
 from rest_framework import status
 
 from lcm.pub.utils import restcall
+from lcm.pub.database.models import WFPlanModel
 
 class WorkflowViewTest(unittest.TestCase):
     def setUp(self):
         self.client = Client()
+        WFPlanModel.objects.filter().delete()
 
     def tearDown(self):
         pass
@@ -39,3 +41,28 @@ class WorkflowViewTest(unittest.TestCase):
         response = self.client.post("/api/nslcm/v1/workflow", 
             {"filePath": os.path.abspath(__file__)}, format='json')
         self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
+        self.assertEqual(1, len(WFPlanModel.objects.filter(deployed_id="3")))
+
+    @mock.patch.object(restcall, 'upload_by_msb')
+    def test_force_deploy_workflow(self, mock_upload_by_msb):
+        mock_upload_by_msb.return_value = [0, json.JSONEncoder().encode({
+            "status": "2",
+            "message": "3",
+            "deployedId": "4",
+            "processId": "5"
+            }), '202']
+        WFPlanModel(deployed_id="1", process_id="2", status="3", message="4").save()
+        response = self.client.post("/api/nslcm/v1/workflow", 
+            {"filePath": os.path.abspath(__file__), "forceDeploy": "True"}, format='json')
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
+        self.assertEqual(0, len(WFPlanModel.objects.filter(deployed_id="1")))
+        self.assertEqual(1, len(WFPlanModel.objects.filter(deployed_id="4")))
+
+    def test_deploy_workflow_when_already_deployed(self):
+        WFPlanModel(deployed_id="1", process_id="2", status="3", message="4").save()
+        response = self.client.post("/api/nslcm/v1/workflow", 
+            {"filePath": os.path.abspath(__file__)}, format='json')
+        self.assertEqual(status.HTTP_202_ACCEPTED, response.status_code, response.content)
+        self.assertEqual({'msg': 'Already deployed.'}, json.loads(response.content))
+
+