def test_start_workflow_retries_on_error(self, mock_request):
        def _request_callback(request, context):
            context.status_code = 500
            context.headers['test'] = 'header'
            return {'status': 'error', 'message': 'Internal Server Error'}

        # Make the test complete faster by limiting the number of retries
        cromwell_tools.start_workflow.retry.stop = stop_after_attempt(3)

        # Check request actions
        mock_request.post(self.url, json=_request_callback)
        with self.assertRaises(requests.HTTPError):
            result = cromwell_tools.start_workflow(self.wdl_file,
                                                   self.inputs_file,
                                                   self.url,
                                                   self.options_file,
                                                   self.inputs_file2,
                                                   self.zip_file,
                                                   self.user,
                                                   self.password,
                                                   label=self.label,
                                                   on_hold=self.on_hold)
            self.assertNotEqual(mock_request.call_count, 1)

        # Reset default retry value
        cromwell_tools.start_workflow.retry.stop = stop_after_delay(20)
예제 #2
0
    def test_start_workflow(self, mock_request):
        """Unit test using mocks
        """
        def _request_callback(request, context):
            context.status_code = 200
            context.headers['test'] = 'header'
            return {'request': {'body': "content"}}

        # Check request actions
        mock_request.post(self.url, json=_request_callback)
        result = cromwell_tools.start_workflow(self.wdl_file,
                                               self.inputs_file,
                                               self.url,
                                               self.options_file,
                                               self.inputs_file2,
                                               self.zip_file,
                                               self.user,
                                               self.password,
                                               label=self.label)
        self.assertEqual(result.status_code, 200)
        self.assertEqual(result.headers.get('test'), 'header')
예제 #3
0
    def test_start_workflow_in_cromwell_as_a_service(self, mock_request,
                                                     mock_header):
        mock_header.return_value = {"Authorization": "bearer fake_token"}

        def _request_callback(request, context):
            context.status_code = 200
            context.headers['test'] = 'header'
            return {'request': {'body': "content"}}

        # Check request actions
        mock_request.post(self.url, json=_request_callback)
        result = cromwell_tools.start_workflow(self.wdl_file,
                                               self.inputs_file,
                                               self.url,
                                               self.options_file,
                                               self.inputs_file2,
                                               self.zip_file,
                                               caas_key=self.caas_key,
                                               label=self.label)
        self.assertEqual(result.status_code, 200)
        self.assertEqual(result.headers.get('test'), 'header')