Test and workflow for new script to delete IRB documents

This commit is contained in:
mike cullerton 2021-04-05 08:55:41 -04:00
parent 0eb6291740
commit d81497f8cb
2 changed files with 151 additions and 0 deletions

View File

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8"?>
<bpmn:definitions xmlns:bpmn="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/DD/20100524/DI" xmlns:camunda="http://camunda.org/schema/1.0/bpmn" id="Definitions_3d948db" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.5.0">
<bpmn:process id="Process_44b3aca" isExecutable="true">
<bpmn:startEvent id="StartEvent_1">
<bpmn:outgoing>Flow_1j6i6nv</bpmn:outgoing>
</bpmn:startEvent>
<bpmn:sequenceFlow id="Flow_1j6i6nv" sourceRef="StartEvent_1" targetRef="Activity_WhichIRBDocument" />
<bpmn:sequenceFlow id="Flow_0oyc3ye" sourceRef="Activity_WhichIRBDocument" targetRef="Activity_CheckFileUploaded" />
<bpmn:sequenceFlow id="Flow_1rexoi9" sourceRef="Activity_DeleteIRBDocument" targetRef="Activity_CheckFileDeleted" />
<bpmn:endEvent id="Event_06rfn6m">
<bpmn:incoming>Flow_0ry4bnx</bpmn:incoming>
</bpmn:endEvent>
<bpmn:userTask id="Activity_WhichIRBDocument" name="Which IRB Document" camunda:formKey="UploadIRBDoc">
<bpmn:extensionElements>
<camunda:formData>
<camunda:formField id="irb_document" label="IRB Document" type="string" defaultValue="Study_Protocol_Document" />
</camunda:formData>
</bpmn:extensionElements>
<bpmn:incoming>Flow_1j6i6nv</bpmn:incoming>
<bpmn:outgoing>Flow_0oyc3ye</bpmn:outgoing>
</bpmn:userTask>
<bpmn:scriptTask id="Activity_CheckFileUploaded" name="Check File Uploaded">
<bpmn:incoming>Flow_0oyc3ye</bpmn:incoming>
<bpmn:outgoing>Flow_1gpekhi</bpmn:outgoing>
<bpmn:script>uploaded = is_file_uploaded(irb_document)</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_1gpekhi" sourceRef="Activity_CheckFileUploaded" targetRef="Activity_DisplayFileUploaded" />
<bpmn:manualTask id="Activity_DisplayFileUploaded" name="Display File Uploaded">
<bpmn:documentation># Is file uploaded
uploaded: {{uploaded}}</bpmn:documentation>
<bpmn:incoming>Flow_1gpekhi</bpmn:incoming>
<bpmn:outgoing>Flow_0qyam4h</bpmn:outgoing>
</bpmn:manualTask>
<bpmn:scriptTask id="Activity_DeleteIRBDocument" name="Delete IRB Document">
<bpmn:incoming>Flow_0qyam4h</bpmn:incoming>
<bpmn:outgoing>Flow_1rexoi9</bpmn:outgoing>
<bpmn:script>delete_irb_document(irb_document=irb_document)</bpmn:script>
</bpmn:scriptTask>
<bpmn:scriptTask id="Activity_CheckFileDeleted" name="Check File Deleted">
<bpmn:incoming>Flow_1rexoi9</bpmn:incoming>
<bpmn:outgoing>Flow_06hfqyd</bpmn:outgoing>
<bpmn:script>deleted = not is_file_uploaded(irb_document)</bpmn:script>
</bpmn:scriptTask>
<bpmn:sequenceFlow id="Flow_0qyam4h" sourceRef="Activity_DisplayFileUploaded" targetRef="Activity_DeleteIRBDocument" />
<bpmn:sequenceFlow id="Flow_06hfqyd" sourceRef="Activity_CheckFileDeleted" targetRef="Activity_DisplayFileDeleted" />
<bpmn:sequenceFlow id="Flow_0ry4bnx" sourceRef="Activity_DisplayFileDeleted" targetRef="Event_06rfn6m" />
<bpmn:manualTask id="Activity_DisplayFileDeleted" name="Display File Deleted">
<bpmn:documentation># Is file deleted
deleted: {{deleted}}</bpmn:documentation>
<bpmn:incoming>Flow_06hfqyd</bpmn:incoming>
<bpmn:outgoing>Flow_0ry4bnx</bpmn:outgoing>
</bpmn:manualTask>
</bpmn:process>
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_44b3aca">
<bpmndi:BPMNEdge id="Flow_0oyc3ye_di" bpmnElement="Flow_0oyc3ye">
<di:waypoint x="360" y="117" />
<di:waypoint x="430" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1j6i6nv_di" bpmnElement="Flow_1j6i6nv">
<di:waypoint x="215" y="117" />
<di:waypoint x="260" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1gpekhi_di" bpmnElement="Flow_1gpekhi">
<di:waypoint x="530" y="117" />
<di:waypoint x="590" y="117" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0qyam4h_di" bpmnElement="Flow_0qyam4h">
<di:waypoint x="640" y="157" />
<di:waypoint x="640" y="220" />
<di:waypoint x="310" y="220" />
<di:waypoint x="310" y="280" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_1rexoi9_di" bpmnElement="Flow_1rexoi9">
<di:waypoint x="360" y="320" />
<di:waypoint x="430" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_06hfqyd_di" bpmnElement="Flow_06hfqyd">
<di:waypoint x="530" y="320" />
<di:waypoint x="590" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNEdge id="Flow_0ry4bnx_di" bpmnElement="Flow_0ry4bnx">
<di:waypoint x="690" y="320" />
<di:waypoint x="742" y="320" />
</bpmndi:BPMNEdge>
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
<dc:Bounds x="179" y="99" width="36" height="36" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_176crcy_di" bpmnElement="Activity_WhichIRBDocument">
<dc:Bounds x="260" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0015703_di" bpmnElement="Activity_CheckFileUploaded">
<dc:Bounds x="430" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_1kmb6qu_di" bpmnElement="Activity_CheckFileDeleted">
<dc:Bounds x="430" y="280" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0om2kg5_di" bpmnElement="Activity_DeleteIRBDocument">
<dc:Bounds x="260" y="280" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_11nq3xj_di" bpmnElement="Activity_DisplayFileUploaded">
<dc:Bounds x="590" y="77" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Activity_0cbkkzl_di" bpmnElement="Activity_DisplayFileDeleted">
<dc:Bounds x="590" y="280" width="100" height="80" />
</bpmndi:BPMNShape>
<bpmndi:BPMNShape id="Event_06rfn6m_di" bpmnElement="Event_06rfn6m">
<dc:Bounds x="742" y="302" width="36" height="36" />
</bpmndi:BPMNShape>
</bpmndi:BPMNPlane>
</bpmndi:BPMNDiagram>
</bpmn:definitions>

View File

@ -0,0 +1,39 @@
from tests.base_test import BaseTest
from crc.services.file_service import FileService
from crc.scripts.is_file_uploaded import IsFileUploaded
import io
class TestDeleteIRBDocument(BaseTest):
def test_delete_irb_document(self):
self.load_example_data()
irb_code = 'Study_Protocol_Document'
workflow = self.create_workflow('add_delete_irb_document')
study_id = workflow.study_id
workflow_api = self.get_workflow_api(workflow)
first_task = workflow_api.next_task
files = FileService.get_files_for_study(study_id)
self.assertEqual(0, len(files))
self.assertEqual(False, IsFileUploaded.do_task(IsFileUploaded, first_task, study_id, workflow.id, irb_code))
# Add a file
FileService.add_workflow_file(workflow_id=workflow.id,
name="filename.txt", content_type="text",
binary_data=b'1234', irb_doc_code=irb_code)
self.assertEqual(True, IsFileUploaded.do_task(IsFileUploaded, first_task, study_id, workflow.id, irb_code))
self.complete_form(workflow, first_task, {'irb_document': irb_code})
workflow_api = self.get_workflow_api(workflow)
second_task = workflow_api.next_task
self.assertEqual('# Is file uploaded\nuploaded: True', second_task.documentation)
self.complete_form(workflow, second_task, {})
workflow_api = self.get_workflow_api(workflow)
third_task = workflow_api.next_task
self.assertEqual('# Is file deleted\ndeleted: True', third_task.documentation)
print('test_delete_irb_document')