Exemple #1
0
    def test_resume_node_appointment__resume_subprocess(self):
        root_pipeline = PipelineObject()

        can_be_wake_process_1 = MockPipelineProcess(can_be_waked=True, root_pipeline=root_pipeline)
        can_be_wake_process_2 = MockPipelineProcess(can_be_waked=True, root_pipeline=root_pipeline)
        can_be_wake_process_3 = MockPipelineProcess(can_be_waked=True, root_pipeline=root_pipeline)
        can_not_be_wake_process_1 = MockPipelineProcess(root_pipeline=root_pipeline)
        can_not_be_wake_process_2 = MockPipelineProcess(root_pipeline=root_pipeline)

        exists_return = [can_be_wake_process_1,
                         can_be_wake_process_2,
                         can_be_wake_process_3,
                         can_not_be_wake_process_1,
                         can_not_be_wake_process_2]

        subprocess_to_be_transit = {can_be_wake_process_1.id,
                                    can_be_wake_process_2.id,
                                    can_be_wake_process_3.id}

        can_be_waked_ids = [can_be_wake_process_1.id,
                            can_be_wake_process_2.id,
                            can_be_wake_process_3.id]

        with patch(PIPELINE_SUBPROCESS_RELATIONSHIP_GET_RELATE_PROCESS,
                   MagicMock(return_value=MockQuerySet(exists_return=exists_return,
                                                       first_return=can_be_wake_process_1,
                                                       qs=exists_return))):
            act_result = api.resume_node_appointment(self.node_id)

            self.assertTrue(act_result.result)

            Status.objects.recover_from_block.assert_called_once_with(root_pipeline.id, subprocess_to_be_transit)

            PipelineProcess.objects.batch_process_ready.assert_called_once_with(process_id_list=can_be_waked_ids,
                                                                                pipeline_id=root_pipeline.id)
Exemple #2
0
    def test_resume_node_appointment__resume_not_subprocess_transit_fail(self):
        act_result = api.resume_node_appointment(self.node_id)

        Status.objects.transit.assert_called_once_with(id=self.node_id,
                                                       to_state=states.READY,
                                                       appoint=True)

        self.assertFalse(act_result.result)
Exemple #3
0
    def test_resume_node_appointment__resume_not_subprocess(self):
        process = MockPipelineProcess()

        with patch(PIPELINE_PROCESS_FILTER,
                   MagicMock(return_value=MockQuerySet(exists_return=True, first_return=process))):
            act_result = api.resume_node_appointment(self.node_id)

            self.assertTrue(act_result.result)

            Status.objects.transit.assert_called_once_with(id=self.node_id,
                                                           to_state=states.READY,
                                                           appoint=True)

            Status.objects.recover_from_block.assert_called_once_with(process.root_pipeline.id,
                                                                      process.subprocess_stack)

            PipelineProcess.objects.process_ready.assert_called_once_with(process_id=process.id)
Exemple #4
0
def resume_activity(act_id):
    return api.resume_node_appointment(act_id)
Exemple #5
0
    def test_resume_node_appointment__fail_with_invalid_node(self):
        act_result = api.resume_node_appointment(self.node_id)

        self.assertFalse(act_result.result)