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)
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')
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')