From 8f5488d91042f95ce6221d4f7449cce2d5d576d2 Mon Sep 17 00:00:00 2001 From: Dan Funk Date: Mon, 17 Aug 2020 15:45:37 -0400 Subject: [PATCH] Don't raise an error when validating workflows that use the ldap script. --- crc/scripts/ldap.py | 15 +++++++++++++-- .../ldap_script.bpmn} | 7 ++++--- tests/ldap/test_ldap_lookup_script.py | 8 +++++++- .../workflow/test_workflow_spec_validation_api.py | 1 + 4 files changed, 25 insertions(+), 6 deletions(-) rename tests/data/{ldap_replace/ldap_replace.bpmn => ldap_script/ldap_script.bpmn} (94%) diff --git a/crc/scripts/ldap.py b/crc/scripts/ldap.py index 2e7d1e6c..061219a3 100644 --- a/crc/scripts/ldap.py +++ b/crc/scripts/ldap.py @@ -24,8 +24,19 @@ Examples: supervisor_info = ldap(supervisor_uid) // Sets the supervisor information to ldap details for the given uid. """ - def do_task_validate_only(self, task, *args, **kwargs): - return self.set_users_info_in_task(task, args) + def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs): + return { + "display_name": "John Smith", + "given_name": "Johnismidges Ego Smithogglesnots", + "email_address": "jes@ogglesnots.org", + "telephone_number": "540-457-0023", + "title": "Prodigious Experilisious Emeritus Eqs.", + "department": "Department of Cheese and Fungus Combustibles", + "affiliation": "Not really", + "sponsor_type": "Department of Fungus", + "uid": "jes42", + "proper_name": "Smith" + } def do_task(self, task, study_id, workflow_id, *args, **kwargs): return self.set_users_info_in_task(task, args) diff --git a/tests/data/ldap_replace/ldap_replace.bpmn b/tests/data/ldap_script/ldap_script.bpmn similarity index 94% rename from tests/data/ldap_replace/ldap_replace.bpmn rename to tests/data/ldap_script/ldap_script.bpmn index 64389299..d2ab78bf 100644 --- a/tests/data/ldap_replace/ldap_replace.bpmn +++ b/tests/data/ldap_script/ldap_script.bpmn @@ -7,16 +7,17 @@ Flow_11e7jgz - + Flow_08n2npe Flow_1xlrgne Supervisor = ldap(Supervisor) -Investigator = ldap(Investigator) +Investigator = ldap(Investigator) +me = ldap() - + diff --git a/tests/ldap/test_ldap_lookup_script.py b/tests/ldap/test_ldap_lookup_script.py index 0f8f48b1..c8c72e63 100644 --- a/tests/ldap/test_ldap_lookup_script.py +++ b/tests/ldap/test_ldap_lookup_script.py @@ -3,6 +3,7 @@ from flask import g from tests.base_test import BaseTest from crc import db +from crc.services.workflow_service import WorkflowService from crc.models.user import UserModel from crc.services.workflow_processor import WorkflowProcessor from crc.scripts.ldap import Ldap @@ -62,7 +63,7 @@ class TestLdapLookupScript(BaseTest): def test_bpmn_task_receives_user_details(self): - workflow = self.create_workflow('ldap_replace') + workflow = self.create_workflow('ldap_script') task_data = { 'Supervisor': 'dhf8r', @@ -84,3 +85,8 @@ class TestLdapLookupScript(BaseTest): self.assertEqual(task.data['Supervisor']['sponsor_type'], 'Staff') self.assertEqual(task.data['Supervisor']['uid'], 'dhf8r') self.assertEqual(task.data['Supervisor']['proper_name'], 'Dan Funk - (dhf8r)') + + def test_ldap_validation(self): + workflow = self.create_workflow('ldap_script') + # This should not raise an error. + WorkflowService.test_spec('ldap_script', required_only=False) diff --git a/tests/workflow/test_workflow_spec_validation_api.py b/tests/workflow/test_workflow_spec_validation_api.py index 29fd5a14..511f45e7 100644 --- a/tests/workflow/test_workflow_spec_validation_api.py +++ b/tests/workflow/test_workflow_spec_validation_api.py @@ -31,6 +31,7 @@ class TestWorkflowSpecValidation(BaseTest): self.assertEqual(0, len(self.validate_workflow("random_fact"))) self.assertEqual(0, len(self.validate_workflow("study_details"))) self.assertEqual(0, len(self.validate_workflow("two_forms"))) + self.assertEqual(0, len(self.validate_workflow("ldap_lookup"))) @patch('crc.services.protocol_builder.ProtocolBuilderService.get_investigators') # mock_studies @patch('crc.services.protocol_builder.ProtocolBuilderService.get_required_docs') # mock_docs