mirror of
https://github.com/status-im/spiff-arena.git
synced 2025-01-13 19:55:24 +00:00
Squashed 'SpiffWorkflow/' changes from 9d597627..d9fcd45a
d9fcd45a Updating release numbers e0d04877 Merge pull request #251 from sartography/bugfix/make-data-objects-available-to-prescripts 7d260c36 Merge pull request #252 from sartography/bug/data_object_serializer_fix 3de54d97 Fixing a failing test. 27c5d3e1 A minor fix during deserialization to avoid issues for some users that upgraded between official releases. 250311d6 copy data objects before prescript execution git-subtree-dir: SpiffWorkflow git-subtree-split: d9fcd45a384f8376a669cf58677564289d2c661c
This commit is contained in:
parent
c04049105f
commit
cf7e156048
@ -22,7 +22,7 @@ copyright = '2022, Sartography'
|
||||
author = 'Sartography'
|
||||
|
||||
# The full version, including alpha/beta/rc tags
|
||||
|
||||
release = '1.2.0'
|
||||
|
||||
# -- General configuration ---------------------------------------------------
|
||||
|
||||
|
2
setup.py
2
setup.py
@ -13,7 +13,7 @@ HERE = pathlib.Path(__file__).parent
|
||||
README = (HERE / "README.md").read_text()
|
||||
|
||||
setup(name='SpiffWorkflow',
|
||||
version='1.1.7',
|
||||
version='1.2.0',
|
||||
description='A workflow framework and BPMN/DMN Processor',
|
||||
long_description=README,
|
||||
long_description_content_type="text/markdown",
|
||||
|
@ -17,6 +17,19 @@ class PrescriptPostsciptTest(BaseTestCase):
|
||||
def testCallActivitySaveRestore(self):
|
||||
self.call_activity_test(True)
|
||||
|
||||
def testDataObject(self):
|
||||
|
||||
spec, subprocesses = self.load_workflow_spec('prescript_postscript_data_object.bpmn', 'Process_1')
|
||||
self.workflow = BpmnWorkflow(spec, subprocesses)
|
||||
# Set a on the workflow and b in the first task.
|
||||
self.workflow.data['a'] = 1
|
||||
self.set_process_data({'b': 2})
|
||||
ready_tasks = self.workflow.get_tasks(TaskState.READY)
|
||||
# This execute the same script as task_test
|
||||
ready_tasks[0].complete()
|
||||
# a should be removed, b should be unchanged, and c and z should be present (but not x & y)
|
||||
self.assertDictEqual({'b': 2, 'c': 12, 'z': 6}, ready_tasks[0].data)
|
||||
|
||||
def task_test(self, save_restore=False):
|
||||
|
||||
spec, subprocesses = self.load_workflow_spec('prescript_postscript.bpmn', 'Process_1')
|
||||
|
@ -0,0 +1,65 @@
|
||||
<?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>
|
||||
<bpmn:task id="Activity_1iqs4li" name="Any Task">
|
||||
<bpmn:extensionElements>
|
||||
<spiffworkflow:preScript>x = a * 2
|
||||
y = b * 2
|
||||
z = x + y</spiffworkflow:preScript>
|
||||
<spiffworkflow:postScript>c = z * 2
|
||||
del x
|
||||
del y</spiffworkflow:postScript>
|
||||
</bpmn:extensionElements>
|
||||
<bpmn:incoming>Flow_1hjrex4</bpmn:incoming>
|
||||
<bpmn:outgoing>Flow_1xndbxy</bpmn:outgoing>
|
||||
<bpmn:property id="Property_1bj3qrk" name="__targetRef_placeholder" />
|
||||
<bpmn:dataInputAssociation id="DataInputAssociation_0qit1wt">
|
||||
<bpmn:sourceRef>DataObjectReference_15lldo2</bpmn:sourceRef>
|
||||
<bpmn:targetRef>Property_1bj3qrk</bpmn:targetRef>
|
||||
</bpmn:dataInputAssociation>
|
||||
</bpmn:task>
|
||||
<bpmn:sequenceFlow id="Flow_1hjrex4" sourceRef="Event_1ftsuzw" targetRef="Activity_1iqs4li" />
|
||||
<bpmn:endEvent id="Event_0c80924">
|
||||
<bpmn:incoming>Flow_1xndbxy</bpmn:incoming>
|
||||
</bpmn:endEvent>
|
||||
<bpmn:sequenceFlow id="Flow_1xndbxy" sourceRef="Activity_1iqs4li" targetRef="Event_0c80924" />
|
||||
<bpmn:dataObjectReference id="DataObjectReference_15lldo2" name="a" dataObjectRef="a" />
|
||||
<bpmn:dataObject id="a" />
|
||||
</bpmn:process>
|
||||
<bpmndi:BPMNDiagram id="BPMNDiagram_1">
|
||||
<bpmndi:BPMNPlane id="BPMNPlane_1" bpmnElement="Process_1">
|
||||
<bpmndi:BPMNEdge id="Flow_1xndbxy_di" bpmnElement="Flow_1xndbxy">
|
||||
<di:waypoint x="380" y="220" />
|
||||
<di:waypoint x="432" y="220" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNEdge id="Flow_1hjrex4_di" bpmnElement="Flow_1hjrex4">
|
||||
<di:waypoint x="228" y="220" />
|
||||
<di:waypoint x="280" y="220" />
|
||||
</bpmndi:BPMNEdge>
|
||||
<bpmndi:BPMNShape id="Event_1ftsuzw_di" bpmnElement="Event_1ftsuzw">
|
||||
<dc:Bounds x="192" y="202" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Activity_1iqs4li_di" bpmnElement="Activity_1iqs4li">
|
||||
<dc:Bounds x="280" y="180" width="100" height="80" />
|
||||
<bpmndi:BPMNLabel />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="Event_0c80924_di" bpmnElement="Event_0c80924">
|
||||
<dc:Bounds x="432" y="202" width="36" height="36" />
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNShape id="DataObjectReference_15lldo2_di" bpmnElement="DataObjectReference_15lldo2">
|
||||
<dc:Bounds x="312" y="75" width="36" height="50" />
|
||||
<bpmndi:BPMNLabel>
|
||||
<dc:Bounds x="328" y="38" width="7" height="14" />
|
||||
</bpmndi:BPMNLabel>
|
||||
</bpmndi:BPMNShape>
|
||||
<bpmndi:BPMNEdge id="DataInputAssociation_0qit1wt_di" bpmnElement="DataInputAssociation_0qit1wt">
|
||||
<di:waypoint x="330" y="125" />
|
||||
<di:waypoint x="330" y="180" />
|
||||
</bpmndi:BPMNEdge>
|
||||
</bpmndi:BPMNPlane>
|
||||
</bpmndi:BPMNDiagram>
|
||||
</bpmn:definitions>
|
Loading…
x
Reference in New Issue
Block a user