Squashed 'SpiffWorkflow/' changes from 12f81480a..d27519a36
d27519a36 Merge pull request #259 from sartography/bugfix/spiff-postscript-execution 21aa8a12c update execution order for postscripts d83fd3d81 Merge pull request #256 from sartography/feature/xml-validation 8303aaab5 uping the sleep time in a test slightly to see if we can get this test to pass consistently in CI. 1d251d55d determine whether to validate by passing in a validator instead of a parameter 2d3daad2d add spiff schema f8c65dc60 Minor changes to BPMN diagrams to assure all tests are run against valid BPMN Diagrams. Changes required: 9e06b25bf add DMN validation 1b7cbeba0 set parser to validate by default 53fdbba52 add schemas & validation option a212d9c5d general cleanup git-subtree-dir: SpiffWorkflow git-subtree-split: d27519a3631b9772094e5f24dba2f478b0c47135
This commit is contained in:
parent
6524778a76
commit
69e814758e
|
@ -3,6 +3,7 @@
|
|||
import json
|
||||
import os
|
||||
import unittest
|
||||
from SpiffWorkflow.bpmn.parser.BpmnParser import BpmnValidator
|
||||
|
||||
from SpiffWorkflow.task import TaskState
|
||||
|
||||
|
@ -18,9 +19,10 @@ class BpmnWorkflowTestCase(unittest.TestCase):
|
|||
|
||||
serializer = BpmnWorkflowSerializer(wf_spec_converter)
|
||||
|
||||
def load_workflow_spec(self, filename, process_name):
|
||||
def load_workflow_spec(self, filename, process_name, validate=True):
|
||||
f = os.path.join(os.path.dirname(__file__), 'data', filename)
|
||||
parser = TestBpmnParser()
|
||||
validator = BpmnValidator() if validate else None
|
||||
parser = TestBpmnParser(validator=validator)
|
||||
parser.add_bpmn_files_by_glob(f)
|
||||
top_level_spec = parser.get_spec(process_name)
|
||||
subprocesses = parser.get_subprocess_specs(process_name)
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
import sys
|
||||
import os
|
||||
import unittest
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '..'))
|
||||
|
||||
from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase
|
||||
from SpiffWorkflow.bpmn.parser.ValidationException import ValidationException
|
||||
__author__ = 'kellym'
|
||||
|
||||
|
||||
|
||||
class ClashingNameTest2(BpmnWorkflowTestCase):
|
||||
"""The example bpmn diagram tests both a set cardinality from user input
|
||||
as well as looping over an existing array."""
|
||||
|
||||
def setUp(self):
|
||||
pass
|
||||
|
||||
def loadWorkflow(self):
|
||||
self.load_workflow_spec('Approvals_bad.bpmn', 'Approvals')
|
||||
|
||||
def testRunThroughHappy(self):
|
||||
# make sure we raise an exception
|
||||
# when validating a workflow with multiple
|
||||
# same IDs in the BPMN workspace
|
||||
self.assertRaises(ValidationException,self.loadWorkflow)
|
||||
|
||||
|
||||
|
||||
def suite():
|
||||
return unittest.TestLoader().loadTestsFromTestCase(ClashingNameTest2)
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.TextTestRunner(verbosity=2).run(suite())
|
|
@ -1,18 +1,10 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
|
||||
|
||||
|
||||
import sys
|
||||
import os
|
||||
import unittest
|
||||
|
||||
from SpiffWorkflow.camunda.parser.CamundaParser import CamundaParser
|
||||
from SpiffWorkflow.dmn.parser.BpmnDmnParser import BpmnDmnParser
|
||||
from SpiffWorkflow.spiff.parser import SpiffBpmnParser
|
||||
from tests.SpiffWorkflow.bpmn.BpmnLoaderForTests import TestBpmnParser
|
||||
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '..', '..', '..'))
|
||||
from SpiffWorkflow.bpmn.workflow import BpmnWorkflow
|
||||
from tests.SpiffWorkflow.bpmn.BpmnWorkflowTestCase import BpmnWorkflowTestCase
|
||||
|
||||
__author__ = 'danfunk'
|
||||
|
@ -34,6 +26,7 @@ class ProcessDependencyTest(BpmnWorkflowTestCase):
|
|||
self.actual_test(SpiffBpmnParser())
|
||||
|
||||
def actual_test(self, parser):
|
||||
# We ought to test the parsers in the packages they belong to, not here.
|
||||
filename = 'call_activity_nested'
|
||||
process_name = 'Level1'
|
||||
base_dir = os.path.join(os.path.dirname(__file__), 'data', filename)
|
||||
|
|
|
@ -102,7 +102,7 @@
|
|||
</model:process>
|
||||
<model:process id="First_Approval_Wins" name="First Approval Wins">
|
||||
<model:documentation></model:documentation>
|
||||
<model:laneSet id="First_Approval_Wins.First Approval Wins_laneSet">
|
||||
<model:laneSet id="First_Approval_Wins.First_Approval_Wins_laneSet">
|
||||
<model:lane id="First_Approval_Wins.Supervisor" name="Supervisor">
|
||||
<model:documentation></model:documentation>
|
||||
<model:flowNodeRef>Supervisor_Approval</model:flowNodeRef>
|
||||
|
@ -147,7 +147,7 @@
|
|||
</model:process>
|
||||
<model:process id="Parallel_Approvals_SP" name="Parallel Approvals SP">
|
||||
<model:documentation></model:documentation>
|
||||
<model:laneSet id="Parallel_Approvals_SP.Parallel Approvals SP_laneSet">
|
||||
<model:laneSet id="Parallel_Approvals_SP.Parallel_Approvals_SP_laneSet">
|
||||
<model:lane id="Parallel_Approvals_SP.Supervisor" name="Supervisor">
|
||||
<model:documentation></model:documentation>
|
||||
<model:flowNodeRef>Start3</model:flowNodeRef>
|
||||
|
|
|
@ -1,403 +0,0 @@
|
|||
<?xml version="1.0" encoding="ASCII"?>
|
||||
<model:definitions xmlns:dc="http://www.omg.org/spec/DD/20100524/DC" xmlns:di="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:di_1="http://www.omg.org/spec/DD/20100524/DI" xmlns:model="http://www.omg.org/spec/BPMN/20100524/MODEL" exporter="BonitaSoft" exporterVersion="5.7" expressionLanguage="http://groovy.codehaus.org/" targetNamespace="http://bonitasoft.com/Approvals">
|
||||
<model:collaboration id="Approvals">
|
||||
<model:documentation></model:documentation>
|
||||
<model:participant id="Initiator">
|
||||
<model:documentation>Person who takes the first action to start the process</model:documentation>
|
||||
</model:participant>
|
||||
<model:participant id="_auWnIO-1EeG6ILSEFG-uBA" name="Approvals" processRef="Approvals"/>
|
||||
<model:participant id="_auX1QO-1EeG6ILSEFG-uBA" name="First Approval Wins" processRef="First_Approval_Wins"/>
|
||||
<model:participant id="_auYcUO-1EeG6ILSEFG-uBA" name="Parallel Approvals SP" processRef="Parallel_Approvals_SP"/>
|
||||
</model:collaboration>
|
||||
<model:process id="Approvals" name="Approvals">
|
||||
<model:documentation></model:documentation>
|
||||
<model:laneSet id="Approvals_laneSet">
|
||||
<model:lane id="Approvals.Test" name="Test">
|
||||
<model:documentation></model:documentation>
|
||||
<model:flowNodeRef>Start1</model:flowNodeRef>
|
||||
<model:flowNodeRef>First_Approval_Wins</model:flowNodeRef>
|
||||
<model:flowNodeRef>End1</model:flowNodeRef>
|
||||
<model:flowNodeRef>First_Approval_Wins_Done</model:flowNodeRef>
|
||||
<model:flowNodeRef>Parallel_Approvals_Done</model:flowNodeRef>
|
||||
<model:flowNodeRef>Parallel_SP</model:flowNodeRef>
|
||||
<model:flowNodeRef>Parallel_SP_Done</model:flowNodeRef>
|
||||
</model:lane>
|
||||
<model:lane id="Approvals.Supervisor" name="Supervisor">
|
||||
<model:documentation></model:documentation>
|
||||
<model:flowNodeRef>Supervisor_Approval__P_</model:flowNodeRef>
|
||||
<model:flowNodeRef>Gateway4</model:flowNodeRef>
|
||||
<model:flowNodeRef>Gateway5</model:flowNodeRef>
|
||||
</model:lane>
|
||||
<model:lane id="Approvals.Manager" name="Manager">
|
||||
<model:documentation></model:documentation>
|
||||
<model:flowNodeRef>Manager_Approval__P_</model:flowNodeRef>
|
||||
</model:lane>
|
||||
</model:laneSet>
|
||||
<model:startEvent id="Approvals.Start1" name="Start1">
|
||||
<model:documentation></model:documentation>
|
||||
</model:startEvent>
|
||||
<model:callActivity id="Approvals.First_Approval_Wins" name="First Approval Wins" calledElement="First_Approval_Wins">
|
||||
<model:documentation></model:documentation>
|
||||
</model:callActivity>
|
||||
<model:endEvent id="Approvals.End1" name="End1">
|
||||
<model:documentation></model:documentation>
|
||||
</model:endEvent>
|
||||
<model:manualTask id="Approvals.First_Approval_Wins_Done" name="First Approval Wins Done">
|
||||
<model:documentation></model:documentation>
|
||||
</model:manualTask>
|
||||
<model:manualTask id="Approvals.Parallel_Approvals_Done" name="Parallel Approvals Done">
|
||||
<model:documentation></model:documentation>
|
||||
</model:manualTask>
|
||||
<model:callActivity id="Approvals.Parallel_SP" name="Parallel SP" calledElement="Parallel_Approvals_SP">
|
||||
<model:documentation></model:documentation>
|
||||
</model:callActivity>
|
||||
<model:manualTask id="Approvals.Parallel_SP_Done" name="Parallel SP Done">
|
||||
<model:documentation></model:documentation>
|
||||
</model:manualTask>
|
||||
<model:manualTask id="Approvals.Supervisor_Approval__P_" name="Supervisor Approval (P)">
|
||||
<model:documentation></model:documentation>
|
||||
</model:manualTask>
|
||||
<model:parallelGateway id="Approvals.Gateway4" name="Gateway4">
|
||||
<model:documentation></model:documentation>
|
||||
</model:parallelGateway>
|
||||
<model:parallelGateway id="Approvals.Gateway5" name="Gateway5">
|
||||
<model:documentation></model:documentation>
|
||||
</model:parallelGateway>
|
||||
<model:manualTask id="Approvals.Manager_Approval__P_" name="Manager Approval (P)">
|
||||
<model:documentation></model:documentation>
|
||||
</model:manualTask>
|
||||
<model:sequenceFlow id="_IcV3AO4CEeG6ILSEFG-uBA" sourceRef="Approvals.Start1" targetRef="Approvals.First_Approval_Wins">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="_vVCwgO4DEeG6ILSEFG-uBA" sourceRef="Approvals.First_Approval_Wins" targetRef="Approvals.First_Approval_Wins_Done">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="On_to_Parallel_Approvals1" name="On to Parallel Approvals" sourceRef="Approvals.First_Approval_Wins_Done" targetRef="Approvals.Gateway4">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="_dceXwO6YEeG6ILSEFG-uBA" sourceRef="Approvals.Gateway4" targetRef="Approvals.Manager_Approval__P_">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="_d_Hx0O6YEeG6ILSEFG-uBA" sourceRef="Approvals.Gateway4" targetRef="Approvals.Supervisor_Approval__P_">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="Approve2" name="Approve" sourceRef="Approvals.Supervisor_Approval__P_" targetRef="Approvals.Gateway5">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="On_To_Parallel_SP3" name="On To Parallel SP" sourceRef="Approvals.Parallel_Approvals_Done" targetRef="Approvals.Parallel_SP">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="Approve4" name="Approve" sourceRef="Approvals.Manager_Approval__P_" targetRef="Approvals.Gateway5">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="OK5" name="OK" sourceRef="Approvals.Parallel_SP_Done" targetRef="Approvals.End1">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="_76Vy8O6ZEeG6ILSEFG-uBA" sourceRef="Approvals.Parallel_SP" targetRef="Approvals.Parallel_SP_Done">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="_E8AnwO6aEeG6ILSEFG-uBA" sourceRef="Approvals.Gateway5" targetRef="Approvals.Parallel_Approvals_Done">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
</model:process>
|
||||
<model:process id="First_Approval_Wins" name="First Approval Wins">
|
||||
<model:documentation></model:documentation>
|
||||
<model:laneSet id="First_Approval_Wins.First Approval Wins_laneSet">
|
||||
<model:lane id="First_Approval_Wins.Supervisor" name="Supervisor">
|
||||
<model:documentation></model:documentation>
|
||||
<model:flowNodeRef>Supervisor_Approval</model:flowNodeRef>
|
||||
<model:flowNodeRef>Start2</model:flowNodeRef>
|
||||
<model:flowNodeRef>Supervisor_Approved</model:flowNodeRef>
|
||||
</model:lane>
|
||||
<model:lane id="First_Approval_Wins.Manager" name="Manager">
|
||||
<model:documentation></model:documentation>
|
||||
<model:flowNodeRef>Manager_Approval</model:flowNodeRef>
|
||||
<model:flowNodeRef>Manager_Approved</model:flowNodeRef>
|
||||
</model:lane>
|
||||
</model:laneSet>
|
||||
<model:manualTask id="First_Approval_Wins.Supervisor_Approval" name="Supervisor Approval">
|
||||
<model:documentation></model:documentation>
|
||||
</model:manualTask>
|
||||
<model:startEvent id="First_Approval_Wins.Start2" name="Start2">
|
||||
<model:documentation></model:documentation>
|
||||
</model:startEvent>
|
||||
<model:endEvent id="First_Approval_Wins.Supervisor_Approved" name="Supervisor Approved">
|
||||
<model:documentation></model:documentation>
|
||||
<model:terminateEventDefinition id="_auX1Qe-1EeG6ILSEFG-uBA"/>
|
||||
</model:endEvent>
|
||||
<model:manualTask id="First_Approval_Wins.Manager_Approval" name="Manager Approval">
|
||||
<model:documentation></model:documentation>
|
||||
</model:manualTask>
|
||||
<model:endEvent id="First_Approval_Wins.Manager_Approved" name="Manager Approved">
|
||||
<model:documentation></model:documentation>
|
||||
<model:terminateEventDefinition id="_auX1Qu-1EeG6ILSEFG-uBA"/>
|
||||
</model:endEvent>
|
||||
<model:sequenceFlow id="Approve6" name="Approve" sourceRef="First_Approval_Wins.Supervisor_Approval" targetRef="First_Approval_Wins.Supervisor_Approved">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="Approve7" name="Approve" sourceRef="First_Approval_Wins.Manager_Approval" targetRef="First_Approval_Wins.Manager_Approved">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="_CtMukO7hEeG6ILSEFG-uBA" sourceRef="First_Approval_Wins.Start2" targetRef="First_Approval_Wins.Supervisor_Approval">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="_DBwCQO7hEeG6ILSEFG-uBA" sourceRef="First_Approval_Wins.Start2" targetRef="First_Approval_Wins.Manager_Approval">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
</model:process>
|
||||
<model:process id="Parallel_Approvals_SP" name="Parallel Approvals SP">
|
||||
<model:documentation></model:documentation>
|
||||
<model:laneSet id="Parallel_Approvals_SP.Parallel Approvals SP_laneSet">
|
||||
<model:lane id="Parallel_Approvals_SP.Supervisor" name="Supervisor">
|
||||
<model:documentation></model:documentation>
|
||||
<model:flowNodeRef>Start3</model:flowNodeRef>
|
||||
<model:flowNodeRef>Supervisor_Approval</model:flowNodeRef>
|
||||
<model:flowNodeRef>End2</model:flowNodeRef>
|
||||
</model:lane>
|
||||
<model:lane id="Parallel_Approvals_SP.Manager" name="Manager">
|
||||
<model:documentation></model:documentation>
|
||||
<model:flowNodeRef>Manager_Approval</model:flowNodeRef>
|
||||
</model:lane>
|
||||
<model:lane id="Parallel_Approvals_SP.Operator" name="Operator">
|
||||
<model:documentation></model:documentation>
|
||||
<model:flowNodeRef>Step1</model:flowNodeRef>
|
||||
</model:lane>
|
||||
</model:laneSet>
|
||||
<model:startEvent id="Parallel_Approvals_SP.Start3" name="Start3">
|
||||
<model:documentation></model:documentation>
|
||||
</model:startEvent>
|
||||
<model:manualTask id="Parallel_Approvals_SP.Supervisor_Approval" name="Supervisor Approval">
|
||||
<model:documentation></model:documentation>
|
||||
</model:manualTask>
|
||||
<model:endEvent id="Parallel_Approvals_SP.End2" name="End2">
|
||||
<model:documentation></model:documentation>
|
||||
</model:endEvent>
|
||||
<model:manualTask id="Parallel_Approvals_SP.Manager_Approval" name="Manager Approval">
|
||||
<model:documentation></model:documentation>
|
||||
</model:manualTask>
|
||||
<model:manualTask id="Parallel_Approvals_SP.Step1" name="Operator Approval">
|
||||
<model:documentation></model:documentation>
|
||||
</model:manualTask>
|
||||
<model:sequenceFlow id="Approve8" name="Approve" sourceRef="Parallel_Approvals_SP.Supervisor_Approval" targetRef="Parallel_Approvals_SP.End2">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="Approve9" name="Approve" sourceRef="Parallel_Approvals_SP.Manager_Approval" targetRef="Parallel_Approvals_SP.End2">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="_InMVgO6ZEeG6ILSEFG-uBA" sourceRef="Parallel_Approvals_SP.Start3" targetRef="Parallel_Approvals_SP.Step1">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="_JEeucO6ZEeG6ILSEFG-uBA" sourceRef="Parallel_Approvals_SP.Start3" targetRef="Parallel_Approvals_SP.Manager_Approval">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
<model:sequenceFlow id="Approve10" name="Approve" sourceRef="Parallel_Approvals_SP.Step1" targetRef="Parallel_Approvals_SP.Supervisor_Approval">
|
||||
<model:documentation></model:documentation>
|
||||
</model:sequenceFlow>
|
||||
</model:process>
|
||||
<di:BPMNDiagram name="Approvals">
|
||||
<di:BPMNPlane id="plane_Approvals" bpmnElement="Approvals">
|
||||
<di:BPMNShape id="_Ib2u0O4CEeG6ILSEFG-uBA" bpmnElement="Approvals" isHorizontal="true">
|
||||
<dc:Bounds height="724.0" width="1352.0" x="30.0" y="30.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_H6ddQO6XEeG6ILSEFG-uBA" bpmnElement="Test" isHorizontal="true">
|
||||
<dc:Bounds height="329.0" width="1330.0" x="52.0" y="30.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_IcCVAO4CEeG6ILSEFG-uBA" bpmnElement="Start1">
|
||||
<dc:Bounds height="34.0" width="30.0" x="92.0" y="95.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_R6kE8O4CEeG6ILSEFG-uBA" bpmnElement="First_Approval_Wins">
|
||||
<dc:Bounds height="74.0" width="148.0" x="206.0" y="95.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_FRlL8O6WEeG6ILSEFG-uBA" bpmnElement="End1">
|
||||
<dc:Bounds height="34.0" width="30.0" x="1045.0" y="170.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_8wLWIO6WEeG6ILSEFG-uBA" bpmnElement="First_Approval_Wins_Done">
|
||||
<dc:Bounds height="84.0" width="168.0" x="192.0" y="190.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_oV8bsO6YEeG6ILSEFG-uBA" bpmnElement="Parallel_Approvals_Done">
|
||||
<dc:Bounds height="74.0" width="148.0" x="522.0" y="190.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_Q-TKYO6ZEeG6ILSEFG-uBA" bpmnElement="Parallel_SP">
|
||||
<dc:Bounds height="50.0" width="100.0" x="735.0" y="107.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_4T7s8O6ZEeG6ILSEFG-uBA" bpmnElement="Parallel_SP_Done">
|
||||
<dc:Bounds height="74.0" width="148.0" x="865.0" y="117.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_rvrNEO6XEeG6ILSEFG-uBA" bpmnElement="Supervisor" isHorizontal="true">
|
||||
<dc:Bounds height="250.0" width="1330.0" x="52.0" y="359.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_8zU7UO6XEeG6ILSEFG-uBA" bpmnElement="Supervisor_Approval__P_">
|
||||
<dc:Bounds height="83.0" width="166.0" x="403.0" y="459.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_aVYD8O6YEeG6ILSEFG-uBA" bpmnElement="Gateway4">
|
||||
<dc:Bounds height="43.0" width="43.0" x="211.0" y="408.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_CesQwO6aEeG6ILSEFG-uBA" bpmnElement="Gateway5">
|
||||
<dc:Bounds height="43.0" width="43.0" x="613.0" y="479.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_vgLDMO6XEeG6ILSEFG-uBA" bpmnElement="Manager" isHorizontal="true">
|
||||
<dc:Bounds height="145.0" width="1330.0" x="52.0" y="609.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_JXN5sO6YEeG6ILSEFG-uBA" bpmnElement="Manager_Approval__P_">
|
||||
<dc:Bounds height="60.0" width="120.0" x="419.0" y="639.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNEdge id="_IcWeEO4CEeG6ILSEFG-uBA" bpmnElement="_IcV3AO4CEeG6ILSEFG-uBA">
|
||||
<di_1:waypoint x="122.0" y="122.0"/>
|
||||
<di_1:waypoint x="206.0" y="122.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_vVDXkO4DEeG6ILSEFG-uBA" bpmnElement="_vVCwgO4DEeG6ILSEFG-uBA">
|
||||
<di_1:waypoint x="311.0" y="169.0"/>
|
||||
<di_1:waypoint x="311.0" y="190.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_DYxlUO6YEeG6ILSEFG-uBA" bpmnElement="On_to_Parallel_Approvals">
|
||||
<di_1:waypoint x="240.0" y="274.0"/>
|
||||
<di_1:waypoint x="240.0" y="415.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_dcfl4O6YEeG6ILSEFG-uBA" bpmnElement="_dceXwO6YEeG6ILSEFG-uBA">
|
||||
<di_1:waypoint x="236.0" y="447.0"/>
|
||||
<di_1:waypoint x="236.0" y="668.0"/>
|
||||
<di_1:waypoint x="419.0" y="668.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_d_I_8O6YEeG6ILSEFG-uBA" bpmnElement="_d_Hx0O6YEeG6ILSEFG-uBA">
|
||||
<di_1:waypoint x="248.0" y="434.0"/>
|
||||
<di_1:waypoint x="325.0" y="434.0"/>
|
||||
<di_1:waypoint x="325.0" y="480.0"/>
|
||||
<di_1:waypoint x="403.0" y="480.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_vsd9UO6YEeG6ILSEFG-uBA" bpmnElement="Approve">
|
||||
<di_1:waypoint x="569.0" y="487.0"/>
|
||||
<di_1:waypoint x="592.0" y="487.0"/>
|
||||
<di_1:waypoint x="592.0" y="496.0"/>
|
||||
<di_1:waypoint x="616.0" y="496.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_yTd0wO6YEeG6ILSEFG-uBA" bpmnElement="On_To_Parallel_SP">
|
||||
<di_1:waypoint x="670.0" y="194.0"/>
|
||||
<di_1:waypoint x="720.0" y="194.0"/>
|
||||
<di_1:waypoint x="720.0" y="173.0"/>
|
||||
<di_1:waypoint x="745.0" y="173.0"/>
|
||||
<di_1:waypoint x="745.0" y="157.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_34HwIO6YEeG6ILSEFG-uBA" bpmnElement="Approve">
|
||||
<di_1:waypoint x="539.0" y="668.0"/>
|
||||
<di_1:waypoint x="626.0" y="668.0"/>
|
||||
<di_1:waypoint x="626.0" y="514.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_UUS10O6ZEeG6ILSEFG-uBA" bpmnElement="OK">
|
||||
<di_1:waypoint x="1013.0" y="180.0"/>
|
||||
<di_1:waypoint x="1045.0" y="180.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_76XBEO6ZEeG6ILSEFG-uBA" bpmnElement="_76Vy8O6ZEeG6ILSEFG-uBA">
|
||||
<di_1:waypoint x="835.0" y="135.0"/>
|
||||
<di_1:waypoint x="850.0" y="135.0"/>
|
||||
<di_1:waypoint x="850.0" y="137.0"/>
|
||||
<di_1:waypoint x="865.0" y="137.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_E8B14O6aEeG6ILSEFG-uBA" bpmnElement="_E8AnwO6aEeG6ILSEFG-uBA">
|
||||
<di_1:waypoint x="628.0" y="485.0"/>
|
||||
<di_1:waypoint x="628.0" y="264.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNShape id="_R6hBoO4CEeG6ILSEFG-uBA" bpmnElement="First_Approval_Wins" isHorizontal="true">
|
||||
<dc:Bounds height="500.0" width="1352.0" x="30.0" y="774.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_sDQsIO4CEeG6ILSEFG-uBA" bpmnElement="Supervisor" isHorizontal="true">
|
||||
<dc:Bounds height="250.0" width="1330.0" x="52.0" y="774.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_R6vrIe4CEeG6ILSEFG-uBA" bpmnElement="Supervisor_Approval">
|
||||
<dc:Bounds height="50.0" width="100.0" x="320.0" y="858.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_VgS1gO4CEeG6ILSEFG-uBA" bpmnElement="Start2">
|
||||
<dc:Bounds height="34.0" width="30.0" x="134.0" y="843.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_jja8kO4DEeG6ILSEFG-uBA" bpmnElement="Supervisor_Approved">
|
||||
<dc:Bounds height="34.0" width="30.0" x="538.0" y="876.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_ttNsgO4CEeG6ILSEFG-uBA" bpmnElement="Manager" isHorizontal="true">
|
||||
<dc:Bounds height="250.0" width="1330.0" x="52.0" y="1024.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_jf_DgO4CEeG6ILSEFG-uBA" bpmnElement="Manager_Approval">
|
||||
<dc:Bounds height="50.0" width="100.0" x="304.0" y="1124.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_oUPnQO4DEeG6ILSEFG-uBA" bpmnElement="Manager_Approved">
|
||||
<dc:Bounds height="34.0" width="30.0" x="522.0" y="1134.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNEdge id="_mAyW4O4DEeG6ILSEFG-uBA" bpmnElement="Approve">
|
||||
<di_1:waypoint x="420.0" y="886.0"/>
|
||||
<di_1:waypoint x="479.0" y="886.0"/>
|
||||
<di_1:waypoint x="479.0" y="892.0"/>
|
||||
<di_1:waypoint x="538.0" y="892.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_qIrZUO4DEeG6ILSEFG-uBA" bpmnElement="Approve">
|
||||
<di_1:waypoint x="404.0" y="1153.0"/>
|
||||
<di_1:waypoint x="463.0" y="1153.0"/>
|
||||
<di_1:waypoint x="463.0" y="1147.0"/>
|
||||
<di_1:waypoint x="522.0" y="1147.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_CtMuku7hEeG6ILSEFG-uBA" bpmnElement="_CtMukO7hEeG6ILSEFG-uBA">
|
||||
<di_1:waypoint x="164.0" y="872.0"/>
|
||||
<di_1:waypoint x="242.0" y="872.0"/>
|
||||
<di_1:waypoint x="242.0" y="880.0"/>
|
||||
<di_1:waypoint x="320.0" y="880.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_DBxQYO7hEeG6ILSEFG-uBA" bpmnElement="_DBwCQO7hEeG6ILSEFG-uBA">
|
||||
<di_1:waypoint x="149.0" y="877.0"/>
|
||||
<di_1:waypoint x="149.0" y="1149.0"/>
|
||||
<di_1:waypoint x="304.0" y="1149.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNShape id="_Zk-u8O4uEeG6ILSEFG-uBA" bpmnElement="Parallel_Approvals_SP" isHorizontal="true">
|
||||
<dc:Bounds height="630.0" width="1352.0" x="30.0" y="1294.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_f_FroO4uEeG6ILSEFG-uBA" bpmnElement="Supervisor" isHorizontal="true">
|
||||
<dc:Bounds height="280.0" width="1330.0" x="52.0" y="1394.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_uEKI4O4uEeG6ILSEFG-uBA" bpmnElement="Start3">
|
||||
<dc:Bounds height="34.0" width="30.0" x="134.0" y="1530.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_vTJEgO4uEeG6ILSEFG-uBA" bpmnElement="Supervisor_Approval">
|
||||
<dc:Bounds height="50.0" width="100.0" x="493.0" y="1522.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_K4QgkO6WEeG6ILSEFG-uBA" bpmnElement="End2">
|
||||
<dc:Bounds height="34.0" width="30.0" x="799.0" y="1530.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_j4eYAO4uEeG6ILSEFG-uBA" bpmnElement="Manager" isHorizontal="true">
|
||||
<dc:Bounds height="250.0" width="1330.0" x="52.0" y="1674.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_y4gBoO4uEeG6ILSEFG-uBA" bpmnElement="Manager_Approval">
|
||||
<dc:Bounds height="50.0" width="100.0" x="364.0" y="1795.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_RkTswO7hEeG6ILSEFG-uBA" bpmnElement="Operator" isHorizontal="true">
|
||||
<dc:Bounds height="100.0" width="1330.0" x="52.0" y="1294.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNShape id="_VVzBYO7hEeG6ILSEFG-uBA" bpmnElement="Step1">
|
||||
<dc:Bounds height="50.0" width="100.0" x="364.0" y="1324.0"/>
|
||||
</di:BPMNShape>
|
||||
<di:BPMNEdge id="_-dnqoO4uEeG6ILSEFG-uBA" bpmnElement="Approve">
|
||||
<di_1:waypoint x="593.0" y="1554.0"/>
|
||||
<di_1:waypoint x="799.0" y="1554.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="__RQHAO4uEeG6ILSEFG-uBA" bpmnElement="Approve">
|
||||
<di_1:waypoint x="464.0" y="1825.0"/>
|
||||
<di_1:waypoint x="631.0" y="1825.0"/>
|
||||
<di_1:waypoint x="631.0" y="1558.0"/>
|
||||
<di_1:waypoint x="799.0" y="1558.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_InOKsO6ZEeG6ILSEFG-uBA" bpmnElement="_InMVgO6ZEeG6ILSEFG-uBA">
|
||||
<di_1:waypoint x="164.0" y="1558.0"/>
|
||||
<di_1:waypoint x="264.0" y="1558.0"/>
|
||||
<di_1:waypoint x="264.0" y="1365.0"/>
|
||||
<di_1:waypoint x="364.0" y="1365.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_JEgjoO6ZEeG6ILSEFG-uBA" bpmnElement="_JEeucO6ZEeG6ILSEFG-uBA">
|
||||
<di_1:waypoint x="149.0" y="1564.0"/>
|
||||
<di_1:waypoint x="149.0" y="1634.0"/>
|
||||
<di_1:waypoint x="307.0" y="1634.0"/>
|
||||
<di_1:waypoint x="307.0" y="1812.0"/>
|
||||
<di_1:waypoint x="364.0" y="1812.0"/>
|
||||
</di:BPMNEdge>
|
||||
<di:BPMNEdge id="_W9jpYO7hEeG6ILSEFG-uBA" bpmnElement="Approve">
|
||||
<di_1:waypoint x="464.0" y="1356.0"/>
|
||||
<di_1:waypoint x="532.0" y="1356.0"/>
|
||||
<di_1:waypoint x="532.0" y="1522.0"/>
|
||||
</di:BPMNEdge>
|
||||
</di:BPMNPlane>
|
||||
</di:BPMNDiagram>
|
||||
</model:definitions>
|
|
@ -20,10 +20,10 @@
|
|||
|
||||
<bpmn:correlationProperty id="lover_name" name="Lover's Name">
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="love_letter">
|
||||
<bpmn:formalExpression>lover_name</bpmn:formalExpression>
|
||||
<bpmn:messagePath>lover_name</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="love_letter_response">
|
||||
<bpmn:formalExpression>from_name</bpmn:formalExpression>
|
||||
<bpmn:messagePath>from_name</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
</bpmn:correlationProperty>
|
||||
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
</bpmn:collaboration>
|
||||
<bpmn:correlationProperty id="process_id" name="Test Correlation">
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="Message_19nm5f5">
|
||||
<bpmn:formalExpression>task_num</bpmn:formalExpression>
|
||||
<bpmn:messagePath>task_num</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="Message_0fc1gu7">
|
||||
<bpmn:formalExpression>init_id</bpmn:formalExpression>
|
||||
<bpmn:messagePath>init_id</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
</bpmn:correlationProperty>
|
||||
<bpmn:process id="proc_1" name="Process 1" isExecutable="true">
|
||||
|
|
|
@ -13,18 +13,18 @@
|
|||
</bpmn:collaboration>
|
||||
<bpmn:correlationProperty id="process_id" name="Test Correlation">
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="Message_19nm5f5">
|
||||
<bpmn:formalExpression>task_num</bpmn:formalExpression>
|
||||
<bpmn:messagePath>task_num</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="Message_0fc1gu7">
|
||||
<bpmn:formalExpression>init_id</bpmn:formalExpression>
|
||||
<bpmn:messagePath>init_id</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
</bpmn:correlationProperty>
|
||||
<bpmn:correlationProperty id="task_id" name="Test Correlation">
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="Message_0hr1xdn">
|
||||
<bpmn:formalExpression>task_num</bpmn:formalExpression>
|
||||
<bpmn:messagePath>task_num</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="Message_0z3cr5h">
|
||||
<bpmn:formalExpression>subprocess</bpmn:formalExpression>
|
||||
<bpmn:messagePath>subprocess</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
</bpmn:correlationProperty>
|
||||
<bpmn:process id="proc_1" name="Process 1" isExecutable="true">
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?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:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_19o7vxg" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="4.11.1" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.17.0">
|
||||
<bpmn:process id="Process" isExecutable="true">
|
||||
<bpmn:ioSpecification />
|
||||
<bpmn:dataObject id="obj_1" />
|
||||
<bpmn:startEvent id="Event_0kmwi7u">
|
||||
<bpmn:outgoing>Flow_18858hr</bpmn:outgoing>
|
||||
|
|
|
@ -9,6 +9,18 @@
|
|||
<dataInput id="in_2" name="input 2" />
|
||||
<dataOutput id="out_1" name="output 1" />
|
||||
<dataOutput id="out_2" name="output 2" />
|
||||
<!-- creating input sets and output sets is way to define these
|
||||
as a required set of inputs or outputs that must all
|
||||
appear together -->
|
||||
<inputSet name="Inputs" id="INS_1">
|
||||
<dataInputRefs>id_1</dataInputRefs>
|
||||
<dataInputRefs>id_2</dataInputRefs>
|
||||
</inputSet>
|
||||
<outputSet name="Outputs" id="OUTS_1">
|
||||
<dataOutputRefs>out_1</dataOutputRefs>
|
||||
<dataOutputRefs>out_2</dataOutputRefs>
|
||||
</outputSet>
|
||||
<outputSet name="Outputs" id="ID_8"/>
|
||||
</ioSpecification>
|
||||
<startEvent id="Event_1rtivo5">
|
||||
<outgoing>Flow_0n038fc</outgoing>
|
||||
|
|
|
@ -11,8 +11,8 @@ __author__ = 'matth'
|
|||
|
||||
|
||||
class ActionManagementTest(BpmnWorkflowTestCase):
|
||||
START_TIME_DELTA=0.01
|
||||
FINISH_TIME_DELTA=0.02
|
||||
START_TIME_DELTA=0.05
|
||||
FINISH_TIME_DELTA=0.10
|
||||
|
||||
def now_plus_seconds(self, seconds):
|
||||
return datetime.datetime.now() + datetime.timedelta(seconds=seconds)
|
||||
|
|
|
@ -41,7 +41,7 @@ def track_workflow(wf_spec, completed_set):
|
|||
class CallActivityEscalationTest(BpmnWorkflowTestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.spec, subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'CallActivity-Escalation-Test')
|
||||
self.spec, subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'CallActivity-Escalation-Test', False)
|
||||
self.workflow = BpmnWorkflow(self.spec, subprocesses)
|
||||
|
||||
def testShouldEscalate(self):
|
||||
|
|
|
@ -13,7 +13,7 @@ __author__ = 'matth'
|
|||
class MessageInterruptsSpTest(BpmnWorkflowTestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'Message Interrupts SP')
|
||||
self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'Message Interrupts SP', False)
|
||||
|
||||
def testRunThroughHappySaveAndRestore(self):
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ __author__ = 'matth'
|
|||
class MessageInterruptsTest(BpmnWorkflowTestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'Test Workflows')
|
||||
self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'Test Workflows', False)
|
||||
|
||||
def testRunThroughHappySaveAndRestore(self):
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ __author__ = 'matth'
|
|||
class MessageNonInterruptTest(BpmnWorkflowTestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'Test Workflows')
|
||||
self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'Test Workflows', False)
|
||||
|
||||
def testRunThroughHappySaveAndRestore(self):
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ __author__ = 'matth'
|
|||
class MessageNonInterruptsSpTest(BpmnWorkflowTestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'Message Non Interrupt SP')
|
||||
self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'Message Non Interrupt SP', False)
|
||||
|
||||
def testRunThroughHappySaveAndRestore(self):
|
||||
|
||||
|
|
|
@ -13,7 +13,7 @@ __author__ = 'matth'
|
|||
class MessagesTest(BpmnWorkflowTestCase):
|
||||
|
||||
def setUp(self):
|
||||
self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'Test Workflows')
|
||||
self.spec, self.subprocesses = self.load_workflow_spec('Test-Workflows/*.bpmn20.xml', 'Test Workflows', False)
|
||||
|
||||
def testRunThroughHappy(self):
|
||||
|
||||
|
|
|
@ -1,8 +1,7 @@
|
|||
from SpiffWorkflow.bpmn.parser.util import full_tag
|
||||
from SpiffWorkflow.camunda.specs.UserTask import UserTask
|
||||
from SpiffWorkflow.camunda.parser.CamundaParser import CamundaParser
|
||||
from SpiffWorkflow.camunda.parser.UserTaskParser import UserTaskParser
|
||||
from SpiffWorkflow.camunda.parser.business_rule_task import BusinessRuleTaskParser
|
||||
from SpiffWorkflow.camunda.parser.task_spec import UserTaskParser, BusinessRuleTaskParser
|
||||
from SpiffWorkflow.dmn.specs.BusinessRuleTask import BusinessRuleTask
|
||||
|
||||
from .BaseTestCase import BaseTestCase
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
import unittest
|
||||
|
||||
from SpiffWorkflow.camunda.parser.UserTaskParser import UserTaskParser
|
||||
from SpiffWorkflow.camunda.parser.task_spec import UserTaskParser
|
||||
from tests.SpiffWorkflow.camunda.BaseTestCase import BaseTestCase
|
||||
|
||||
|
|
@ -1,28 +0,0 @@
|
|||
import unittest
|
||||
|
||||
from SpiffWorkflow.camunda.parser.UserTaskParser import UserTaskParser
|
||||
from SpiffWorkflow.camunda.specs.UserTask import UserTask
|
||||
from SpiffWorkflow.camunda.parser.CamundaParser import CamundaParser
|
||||
|
||||
|
||||
class CamundaParserTest(unittest.TestCase):
|
||||
CORRELATE = CamundaParser
|
||||
|
||||
def setUp(self):
|
||||
self.parser = CamundaParser()
|
||||
|
||||
def test_overrides(self):
|
||||
expected_key = "{http://www.omg.org/spec/BPMN/20100524/MODEL}userTask"
|
||||
self.assertIn(expected_key,
|
||||
self.parser.OVERRIDE_PARSER_CLASSES)
|
||||
|
||||
self.assertEqual((UserTaskParser, UserTask),
|
||||
self.parser.OVERRIDE_PARSER_CLASSES.get(expected_key))
|
||||
|
||||
|
||||
def suite():
|
||||
return unittest.TestLoader().loadTestsFromTestCase(CamundaParserTest)
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.TextTestRunner(verbosity=2).run(suite())
|
|
@ -4,7 +4,7 @@ from lxml import etree
|
|||
|
||||
from SpiffWorkflow.bpmn.PythonScriptEngine import Box
|
||||
from SpiffWorkflow.dmn.engine.DMNEngine import DMNEngine
|
||||
from SpiffWorkflow.dmn.parser.DMNParser import DMNParser
|
||||
from SpiffWorkflow.dmn.parser.DMNParser import DMNParser, get_dmn_ns
|
||||
|
||||
|
||||
class Workflow:
|
||||
|
@ -33,7 +33,7 @@ class DecisionRunner:
|
|||
with open(fn) as fh:
|
||||
node = etree.parse(fh)
|
||||
|
||||
self.dmnParser = DMNParser(None, node.getroot())
|
||||
self.dmnParser = DMNParser(None, node.getroot(), get_dmn_ns(node.getroot()))
|
||||
self.dmnParser.parse()
|
||||
|
||||
decision = self.dmnParser.decision
|
||||
|
|
|
@ -12,7 +12,7 @@ class DmnVersionTest(BpmnWorkflowTestCase):
|
|||
|
||||
def testLoad(self):
|
||||
dmn = os.path.join(os.path.dirname(__file__), 'data',
|
||||
'dmn_version_20191111_test.dmn')
|
||||
'dmn_version_20151101_test.dmn')
|
||||
self.assertIsNone(self.parser.add_dmn_file(dmn))
|
||||
|
||||
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
import os
|
||||
|
||||
from SpiffWorkflow.spiff.parser import SpiffBpmnParser
|
||||
from SpiffWorkflow.spiff.parser import SpiffBpmnParser, VALIDATOR
|
||||
from SpiffWorkflow.spiff.serializer import NoneTaskConverter, \
|
||||
ManualTaskConverter, UserTaskConverter, ScriptTaskConverter, \
|
||||
SubWorkflowTaskConverter, TransactionSubprocessConverter, \
|
||||
|
@ -28,9 +28,9 @@ class BaseTestCase(BpmnWorkflowTestCase):
|
|||
|
||||
serializer = BpmnWorkflowSerializer(wf_spec_converter)
|
||||
|
||||
def load_workflow_spec(self, filename, process_name, dmn_filename=None):
|
||||
def load_workflow_spec(self, filename, process_name, dmn_filename=None, validate=True):
|
||||
bpmn = os.path.join(os.path.dirname(__file__), 'data', filename)
|
||||
parser = SpiffBpmnParser()
|
||||
parser = SpiffBpmnParser(validator=VALIDATOR if validate else None)
|
||||
parser.add_bpmn_files_by_glob(bpmn)
|
||||
if dmn_filename is not None:
|
||||
dmn = os.path.join(os.path.dirname(__file__), 'data', 'dmn', dmn_filename)
|
||||
|
|
|
@ -5,53 +5,51 @@
|
|||
<bpmn:outgoing>Flow_0lrg65h</bpmn:outgoing>
|
||||
</bpmn:startEvent>
|
||||
<bpmn:sequenceFlow id="Flow_0lrg65h" sourceRef="StartEvent_1" targetRef="Activity_10k4dgb" />
|
||||
<bpmn:endEvent id="Event_184erzz">
|
||||
<bpmn:incoming>Flow_0l8nhib</bpmn:incoming>
|
||||
</bpmn:endEvent>
|
||||
<bpmn:sequenceFlow id="Flow_0l8nhib" sourceRef="Activity_0ux7vpx" targetRef="Event_184erzz" />
|
||||
<bpmn:businessRuleTask id="Activity_0ux7vpx" name="Business Rules" scriptFormat="python" script="question = "X"">
|
||||
<bpmn:extensionElements>
|
||||
<spiffworkflow:calledDecisionId>decision_1</spiffworkflow:calledDecisionId>
|
||||
<spiffworkflow:preScript />
|
||||
<spiffworkflow:postScript />
|
||||
</bpmn:extensionElements>
|
||||
<bpmn:incoming>Flow_1109ldv</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_0l8nhib</bpmn:outgoing>
|
||||
</bpmn:businessRuleTask>
|
||||
<bpmn:sequenceFlow id="Flow_1109ldv" sourceRef="Activity_10k4dgb" targetRef="Activity_0ux7vpx" />
|
||||
<bpmn:scriptTask id="Activity_10k4dgb" name="Set BR Variable">
|
||||
<bpmn:incoming>Flow_0lrg65h</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_1109ldv</bpmn:outgoing>
|
||||
<bpmn:outgoing>Flow_0m1tt51</bpmn:outgoing>
|
||||
<bpmn:script>question = "X"</bpmn:script>
|
||||
</bpmn:scriptTask>
|
||||
<bpmn:sequenceFlow id="Flow_0m1tt51" sourceRef="Activity_10k4dgb" targetRef="Activity_0diq2z1" />
|
||||
<bpmn:businessRuleTask id="Activity_0diq2z1" name="Business Rules">
|
||||
<bpmn:extensionElements>
|
||||
<spiffworkflow:calledDecisionId>decision_1</spiffworkflow:calledDecisionId>
|
||||
</bpmn:extensionElements>
|
||||
<bpmn:incoming>Flow_0m1tt51</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_19vr2vt</bpmn:outgoing>
|
||||
</bpmn:businessRuleTask>
|
||||
<bpmn:endEvent id="Event_0cqyhox">
|
||||
<bpmn:incoming>Flow_19vr2vt</bpmn:incoming>
|
||||
</bpmn:endEvent>
|
||||
<bpmn:sequenceFlow id="Flow_19vr2vt" sourceRef="Activity_0diq2z1" targetRef="Event_0cqyhox" />
|
||||
</bpmn:process>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_bd2e724">
|
||||
<bpmndi:BPMNEdge id="Flow_1109ldv_di" bpmnElement="Flow_1109ldv">
|
||||
<di:waypoint x="370" y="177" />
|
||||
<di:waypoint x="430" y="177" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0l8nhib_di" bpmnElement="Flow_0l8nhib">
|
||||
<di:waypoint x="530" y="177" />
|
||||
<di:waypoint x="612" y="177" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0lrg65h_di" bpmnElement="Flow_0lrg65h">
|
||||
<di:waypoint x="215" y="177" />
|
||||
<di:waypoint x="270" y="177" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape id="_BPMNShape_StartEvent_2" bpmnElement="StartEvent_1">
|
||||
<dc:Bounds x="179" y="159" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Event_184erzz_di" bpmnElement="Event_184erzz">
|
||||
<dc:Bounds x="612" y="159" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_070a8q9_di" bpmnElement="Activity_0ux7vpx">
|
||||
<dc:Bounds x="430" y="137" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_1emp7lc_di" bpmnElement="Activity_10k4dgb">
|
||||
<dc:Bounds x="270" y="137" width="100" height="80" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_08xsh1p_di" bpmnElement="Activity_0diq2z1">
|
||||
<dc:Bounds x="430" y="137" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Event_0cqyhox_di" bpmnElement="Event_0cqyhox">
|
||||
<dc:Bounds x="592" y="159" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="Flow_0lrg65h_di" bpmnElement="Flow_0lrg65h">
|
||||
<di:waypoint x="215" y="177" />
|
||||
<di:waypoint x="270" y="177" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_0m1tt51_di" bpmnElement="Flow_0m1tt51">
|
||||
<di:waypoint x="370" y="177" />
|
||||
<di:waypoint x="430" y="177" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_19vr2vt_di" bpmnElement="Flow_19vr2vt">
|
||||
<di:waypoint x="530" y="177" />
|
||||
<di:waypoint x="592" y="177" />
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</bpmn:definitions>
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
</bpmn:collaboration>
|
||||
<bpmn:correlationProperty id="process_id" name="Test Correlation">
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="Message_19nm5f5">
|
||||
<bpmn:formalExpression>num</bpmn:formalExpression>
|
||||
<bpmn:messagePath>num</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="Message_0fc1gu7">
|
||||
<bpmn:formalExpression>init_id</bpmn:formalExpression>
|
||||
<bpmn:messagePath>init_id</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
</bpmn:correlationProperty>
|
||||
<bpmn:message id="Message_19nm5f5" name="init_proc_2">
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
<?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:spiffworkflow="http://spiffworkflow.org/bpmn/schema/1.0/core" id="Definitions_96f6665" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="3.0.0-dev">
|
||||
<bpmn:collaboration id="Collaboration_0oye1os" messages="[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]">
|
||||
<bpmn:collaboration id="Collaboration_0oye1os">
|
||||
<bpmn:participant id="message_initiator" name="Message Initiator" processRef="message_send_process" />
|
||||
<bpmn:participant id="message-receiver-one" name="Message Receiver One" />
|
||||
<bpmn:participant id="message-receiver-two" name="Message Receiver Two" />
|
||||
|
@ -19,18 +19,18 @@
|
|||
</bpmn:collaboration>
|
||||
<bpmn:correlationProperty id="mcp_topica_one" name="MCP TopicA One">
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="message_send_one">
|
||||
<bpmn:formalExpression>topica_one</bpmn:formalExpression>
|
||||
<bpmn:messagePath>topica_one</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="message_response_one">
|
||||
<bpmn:formalExpression>payload_var_one.topica</bpmn:formalExpression>
|
||||
<bpmn:messagePath>payload_var_one.topica</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
</bpmn:correlationProperty>
|
||||
<bpmn:correlationProperty id="mcp_topicb_one" name="MCP TopicB_one">
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="message_send_one">
|
||||
<bpmn:formalExpression>topicb_one</bpmn:formalExpression>
|
||||
<bpmn:messagePath>topicb_one</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="message_response_one">
|
||||
<bpmn:formalExpression>payload_var_one.topicb</bpmn:formalExpression>
|
||||
<bpmn:messagePath>payload_var_one.topicb</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
</bpmn:correlationProperty>
|
||||
<bpmn:process id="message_send_process" name="Message Send Process" isExecutable="true">
|
||||
|
@ -117,18 +117,18 @@ del time</bpmn:script>
|
|||
</bpmn:message>
|
||||
<bpmn:correlationProperty id="mcp_topica_two" name="MCP Topica Two">
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="message_send_two">
|
||||
<bpmn:formalExpression>topica_two</bpmn:formalExpression>
|
||||
<bpmn:messagePath>topica_two</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="message_response_two">
|
||||
<bpmn:formalExpression>topica_two</bpmn:formalExpression>
|
||||
<bpmn:messagePath>topica_two</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
</bpmn:correlationProperty>
|
||||
<bpmn:correlationProperty id="mcp_topicb_two" name="MCP Topicb Two">
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="message_send_two">
|
||||
<bpmn:formalExpression>topicb_two</bpmn:formalExpression>
|
||||
<bpmn:messagePath>topicb_two</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
<bpmn:correlationPropertyRetrievalExpression messageRef="message_response_two">
|
||||
<bpmn:formalExpression>topicb_two</bpmn:formalExpression>
|
||||
<bpmn:messagePath>topicb_two</bpmn:messagePath>
|
||||
</bpmn:correlationPropertyRetrievalExpression>
|
||||
</bpmn:correlationProperty>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?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:spiffworkflow="http://spiffworkflow.org/bpmn/schema/1.0/core" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_19o7vxg" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.0.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.17.0">
|
||||
<bpmn:process id="Process_1" isExecutable="true">
|
||||
<bpmn:ioSpecification />
|
||||
<bpmn:startEvent id="Event_1ftsuzw">
|
||||
<bpmn:outgoing>Flow_1hjrex4</bpmn:outgoing>
|
||||
</bpmn:startEvent>
|
||||
|
|
|
@ -4,6 +4,12 @@
|
|||
<bpmn:ioSpecification>
|
||||
<bpmn:dataInput id="in_data" name="Input" />
|
||||
<bpmn:dataOutput id="out_data" name="Output" />
|
||||
<bpmn:inputSet>
|
||||
<bpmn:dataInputRefs>in_data</bpmn:dataInputRefs>
|
||||
</bpmn:inputSet>
|
||||
<bpmn:outputSet>
|
||||
<bpmn:dataOutputRefs>out_data</bpmn:dataOutputRefs>
|
||||
</bpmn:outputSet>
|
||||
</bpmn:ioSpecification>
|
||||
<bpmn:startEvent id="Event_1ftsuzw">
|
||||
<bpmn:outgoing>Flow_1a4nkhi</bpmn:outgoing>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?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:spiffworkflow="http://spiffworkflow.org/bpmn/schema/1.0/core" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_19o7vxg" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.0.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.17.0">
|
||||
<bpmn:process id="Process_1" isExecutable="true">
|
||||
<bpmn:ioSpecification />
|
||||
<bpmn:startEvent id="Event_1ftsuzw">
|
||||
<bpmn:outgoing>Flow_1hjrex4</bpmn:outgoing>
|
||||
</bpmn:startEvent>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?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:spiffworkflow="http://spiffworkflow.org/bpmn/schema/1.0/core" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_19o7vxg" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.0.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.17.0">
|
||||
<bpmn:process id="parent" isExecutable="true">
|
||||
<bpmn:ioSpecification />
|
||||
<bpmn:startEvent id="Event_1i37yhp">
|
||||
<bpmn:outgoing>Flow_1e5oj0e</bpmn:outgoing>
|
||||
</bpmn:startEvent>
|
||||
|
|
|
@ -1,7 +1,6 @@
|
|||
<?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:spiffworkflow="http://spiffworkflow.org/bpmn/schema/1.0/core" xmlns:modeler="http://camunda.org/schema/modeler/1.0" id="Definitions_19o7vxg" targetNamespace="http://bpmn.io/schema/bpmn" exporter="Camunda Modeler" exporterVersion="5.0.0" modeler:executionPlatform="Camunda Platform" modeler:executionPlatformVersion="7.17.0">
|
||||
<bpmn:process id="Process_1" isExecutable="true">
|
||||
<bpmn:ioSpecification />
|
||||
<bpmn:startEvent id="Event_1ftsuzw">
|
||||
<bpmn:outgoing>Flow_1hjrex4</bpmn:outgoing>
|
||||
</bpmn:startEvent>
|
||||
|
@ -16,7 +15,7 @@
|
|||
<spiffworkflow:property name="formJsonSchemaFilename" value="my_json_jschema.json" />
|
||||
<spiffworkflow:property name="formUiSchemaFilename" value="my_ui_jschema.json" />
|
||||
</spiffworkflow:properties>
|
||||
</bpmn:extensionElements>3
|
||||
</bpmn:extensionElements>
|
||||
<bpmn:incoming>Flow_1hjrex4</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_1vlqqxh</bpmn:outgoing>
|
||||
</bpmn:userTask>
|
||||
|
|
Loading…
Reference in New Issue