Beispiel #1
0
    def test_activity_callback__success(self):
        process = MockPipelineProcess()
        callback_data = uniqid()

        with patch(PIPELINE_STATUS_VERSION_FOR, MagicMock(return_value=self.version)):
            with patch(PIPELINE_PROCESS_GET, MagicMock(return_value=process)):
                # schedule service get once
                service = MockScheduleService()
                with patch(PIPELINE_SCHEDULE_SCHEDULE_FOR, MagicMock(return_value=service)):
                    act_result = api.activity_callback(self.node_id, callback_data)

                    self.assertTrue(act_result.result)

                    ScheduleService.objects.schedule_for.assert_called_once_with(self.node_id, self.version)

                    service.callback.assert_called_once_with(callback_data, process.id)

                # schedule service get twice
                service = MockScheduleService()
                with patch(PIPELINE_SCHEDULE_SCHEDULE_FOR, MagicMock(side_effect=[ScheduleService.DoesNotExist,
                                                                                  service])):
                    act_result = api.activity_callback(self.node_id, callback_data)

                    self.assertTrue(act_result.result)

                    ScheduleService.objects.schedule_for.assert_has_calls([mock.call(self.node_id, self.version)] * 2)

                    service.callback.assert_called_once_with(callback_data, process.id)
Beispiel #2
0
    def test_activity_callback__fail_with_process_not_exist(self):
        with patch(PIPELINE_STATUS_VERSION_FOR,
                   MagicMock(return_value=self.version)):
            act_result = api.activity_callback(self.node_id, None)

            ScheduleService.objects.schedule_for.assert_called_once_with(
                self.node_id, self.version)

            self.assertFalse(act_result.result)
Beispiel #3
0
    def test_activity_callback__fail_with_process_not_exist(self):
        with patch(PIPELINE_STATUS_VERSION_FOR, MagicMock(return_value=self.version)):
            act_result = api.activity_callback(self.node_id, None)

            ScheduleService.objects.schedule_for.assert_called_once_with(self.node_id, self.version)

            self.assertFalse(act_result.result)
            self.assertEqual(act_result.message,
                             'invalid operation, this node is finished or pipeline have been revoked')
Beispiel #4
0
def callback(act_id, data=None):
    return api.activity_callback(act_id, data)