Don't raise an error when validating workflows that use the ldap script.

This commit is contained in:
Dan Funk 2020-08-17 15:45:37 -04:00
parent c6f314ea2d
commit 8f5488d910
4 changed files with 25 additions and 6 deletions

View File

@ -24,8 +24,19 @@ Examples:
supervisor_info = ldap(supervisor_uid) // Sets the supervisor information to ldap details for the given uid. 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): def do_task_validate_only(self, task, study_id, workflow_id, *args, **kwargs):
return self.set_users_info_in_task(task, args) 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): def do_task(self, task, study_id, workflow_id, *args, **kwargs):
return self.set_users_info_in_task(task, args) return self.set_users_info_in_task(task, args)

View File

@ -7,16 +7,17 @@
<bpmn:endEvent id="Event_0izrcj4"> <bpmn:endEvent id="Event_0izrcj4">
<bpmn:incoming>Flow_11e7jgz</bpmn:incoming> <bpmn:incoming>Flow_11e7jgz</bpmn:incoming>
</bpmn:endEvent> </bpmn:endEvent>
<bpmn:scriptTask id="Activity_0s5v97n" name="Ldap Replace"> <bpmn:scriptTask id="Activity_0s5v97n" name="Ldap Script">
<bpmn:incoming>Flow_08n2npe</bpmn:incoming> <bpmn:incoming>Flow_08n2npe</bpmn:incoming>
<bpmn:outgoing>Flow_1xlrgne</bpmn:outgoing> <bpmn:outgoing>Flow_1xlrgne</bpmn:outgoing>
<bpmn:script>Supervisor = ldap(Supervisor) <bpmn:script>Supervisor = ldap(Supervisor)
Investigator = ldap(Investigator)</bpmn:script> Investigator = ldap(Investigator)
me = ldap()</bpmn:script>
</bpmn:scriptTask> </bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_1synsig" sourceRef="StartEvent_1" targetRef="Activity_1l9vih3" /> <bpmn:sequenceFlow id="Flow_1synsig" sourceRef="StartEvent_1" targetRef="Activity_1l9vih3" />
<bpmn:sequenceFlow id="Flow_1xlrgne" sourceRef="Activity_0s5v97n" targetRef="Activity_0f78ek5" /> <bpmn:sequenceFlow id="Flow_1xlrgne" sourceRef="Activity_0s5v97n" targetRef="Activity_0f78ek5" />
<bpmn:sequenceFlow id="Flow_08n2npe" sourceRef="Activity_1l9vih3" targetRef="Activity_0s5v97n" /> <bpmn:sequenceFlow id="Flow_08n2npe" sourceRef="Activity_1l9vih3" targetRef="Activity_0s5v97n" />
<bpmn:userTask id="Activity_1l9vih3" name="Set UIDs"> <bpmn:userTask id="Activity_1l9vih3" name="Set UIDs" camunda:formKey="SetUids">
<bpmn:extensionElements> <bpmn:extensionElements>
<camunda:formData> <camunda:formData>
<camunda:formField id="Supervisor" label="Approver" type="string" /> <camunda:formField id="Supervisor" label="Approver" type="string" />

View File

@ -3,6 +3,7 @@ from flask import g
from tests.base_test import BaseTest from tests.base_test import BaseTest
from crc import db from crc import db
from crc.services.workflow_service import WorkflowService
from crc.models.user import UserModel from crc.models.user import UserModel
from crc.services.workflow_processor import WorkflowProcessor from crc.services.workflow_processor import WorkflowProcessor
from crc.scripts.ldap import Ldap from crc.scripts.ldap import Ldap
@ -62,7 +63,7 @@ class TestLdapLookupScript(BaseTest):
def test_bpmn_task_receives_user_details(self): def test_bpmn_task_receives_user_details(self):
workflow = self.create_workflow('ldap_replace') workflow = self.create_workflow('ldap_script')
task_data = { task_data = {
'Supervisor': 'dhf8r', 'Supervisor': 'dhf8r',
@ -84,3 +85,8 @@ class TestLdapLookupScript(BaseTest):
self.assertEqual(task.data['Supervisor']['sponsor_type'], 'Staff') self.assertEqual(task.data['Supervisor']['sponsor_type'], 'Staff')
self.assertEqual(task.data['Supervisor']['uid'], 'dhf8r') self.assertEqual(task.data['Supervisor']['uid'], 'dhf8r')
self.assertEqual(task.data['Supervisor']['proper_name'], 'Dan Funk - (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)

View File

@ -31,6 +31,7 @@ class TestWorkflowSpecValidation(BaseTest):
self.assertEqual(0, len(self.validate_workflow("random_fact"))) 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("study_details")))
self.assertEqual(0, len(self.validate_workflow("two_forms"))) 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_investigators') # mock_studies
@patch('crc.services.protocol_builder.ProtocolBuilderService.get_required_docs') # mock_docs @patch('crc.services.protocol_builder.ProtocolBuilderService.get_required_docs') # mock_docs