コード例 #1
0
    def test_cancel_pipeline_instance_cancels_current_running_clients(
            self, db_session, pipeline_instance_by_id, store_service):
        """
        @rapid-unit Workflow:Cancel Pipeline Instance:Should cancel current assigned clients
        :return:
        :rtype:
        """
        db_session.return_value = [Mock()]
        mock_pipeline_instance = Mock()
        client1 = Mock()
        client1.get_uri.return_value = '12345'

        client2 = Mock()
        store_service.get_clients.return_value = {
            "12345": client1,
            "54321": client2
        }

        mock_pipeline_instance.action_instances = [
            Mock(assigned_to="12345", status_id=StatusConstants.INPROGRESS),
            Mock(assinged_to="12345", status_id=StatusConstants.SUCCESS),
            Mock(assinged_to="12345", status_id=StatusConstants.FAILED),
            Mock(assigned_to="other", status_id=StatusConstants.INPROGRESS)
        ]
        pipeline_instance_by_id.return_value = mock_pipeline_instance

        self.dal.app = Mock(rapid_config=Mock(verify_certs=False))

        eq_("Running clients have been canceled and pipeline canceled.",
            self.dal.cancel_pipeline_instance(12345)['message'])

        self.mock_constants.cancel_worker.assert_called_with(
            mock_pipeline_instance.action_instances[0].serialize())