From 0fad641151826e3221d131d42e75648eddce21e1 Mon Sep 17 00:00:00 2001 From: Jon Herron Date: Wed, 25 Feb 2026 09:03:06 -0500 Subject: [PATCH 1/9] wip --- examples/jfds.bpmn | 56 +++++++++++++++++++++++++++++++++ examples/jsonfiledatastore.json | 1 + 2 files changed, 57 insertions(+) create mode 100644 examples/jfds.bpmn create mode 100644 examples/jsonfiledatastore.json diff --git a/examples/jfds.bpmn b/examples/jfds.bpmn new file mode 100644 index 0000000..f455f33 --- /dev/null +++ b/examples/jfds.bpmn @@ -0,0 +1,56 @@ + + + + + Flow1_1772027573278 + + + Flow2_1772027573278 + + + + + Flow1_1772027573278 + Flow2_1772027573278 + + + DataStoreReference_0kann3y + Property_0omgjkt + + x = 1 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/jsonfiledatastore.json b/examples/jsonfiledatastore.json new file mode 100644 index 0000000..9e26dfe --- /dev/null +++ b/examples/jsonfiledatastore.json @@ -0,0 +1 @@ +{} \ No newline at end of file From 5ee5a96ecfadf0461de8fe5b81e503d71aac7afa Mon Sep 17 00:00:00 2001 From: Jon Herron Date: Thu, 26 Feb 2026 15:17:35 -0500 Subject: [PATCH 2/9] wip --- examples/jfds.bpmn | 43 +++++++++++++++++++++++++++------ examples/jsonfiledatastore.json | 2 +- 2 files changed, 37 insertions(+), 8 deletions(-) diff --git a/examples/jfds.bpmn b/examples/jfds.bpmn index f455f33..3ec5671 100644 --- a/examples/jfds.bpmn +++ b/examples/jfds.bpmn @@ -5,10 +5,10 @@ Flow1_1772027573278 - Flow2_1772027573278 + Flow_1qufhs6 - + Flow1_1772027573278 Flow2_1772027573278 @@ -17,9 +17,21 @@ DataStoreReference_0kann3y Property_0omgjkt - x = 1 + x = jsonfiledatastore.get("x", 1) + + + Flow2_1772027573278 + Flow_1qufhs6 + + DataStoreReference_0wm2yyl + + jsonfiledatastore = { + "x": x + 1 +} + + @@ -27,9 +39,6 @@ - - - @@ -39,18 +48,38 @@ + + + + + + + + + + + + - + + + + + + + + + diff --git a/examples/jsonfiledatastore.json b/examples/jsonfiledatastore.json index 9e26dfe..5505dcd 100644 --- a/examples/jsonfiledatastore.json +++ b/examples/jsonfiledatastore.json @@ -1 +1 @@ -{} \ No newline at end of file +{"x": 7} \ No newline at end of file From 04c24eeb8633137e29989ea137885cf5bfdaad31 Mon Sep 17 00:00:00 2001 From: Jon Herron Date: Fri, 27 Feb 2026 08:26:46 -0500 Subject: [PATCH 3/9] wip --- examples/jfds.bpmn | 8 ++++---- examples/jsonfiledatastore.json | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/examples/jfds.bpmn b/examples/jfds.bpmn index 3ec5671..ea32e2b 100644 --- a/examples/jfds.bpmn +++ b/examples/jfds.bpmn @@ -48,9 +48,6 @@ - - - @@ -60,6 +57,9 @@ + + + @@ -74,7 +74,7 @@ - + diff --git a/examples/jsonfiledatastore.json b/examples/jsonfiledatastore.json index 5505dcd..827e3e4 100644 --- a/examples/jsonfiledatastore.json +++ b/examples/jsonfiledatastore.json @@ -1 +1 @@ -{"x": 7} \ No newline at end of file +{"x": 31} \ No newline at end of file From ed2bf764db24dfc29d6f2bcea144c7db8555b845 Mon Sep 17 00:00:00 2001 From: Jon Herron Date: Fri, 27 Feb 2026 09:17:00 -0500 Subject: [PATCH 4/9] wip --- test.py | 24 +++++++++++++++++++++++- 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/test.py b/test.py index 466da86..c985915 100644 --- a/test.py +++ b/test.py @@ -3,14 +3,36 @@ # dependencies = [ # "jinja2>=3.1.6", # "jsonschema>=4.26.0", -# "spiff-arena-common==0.1.8", +# "spiff-arena-common @/home/jon/dev/spiff-arena/dist/spiff_arena_common-0.1.9-py3-none-any.whl", # "spiffworkflow==3.1.2", # ] # /// +import json import sys from spiff_arena_common.coverage import task_coverage +from spiff_arena_common.data_stores import JSONFileDataStore, JSONFileDataStoreConverter +from SpiffWorkflow.spiff.serializer.config import SPIFF_CONFIG + +class JSONFileDataStoreDelegate: + def get(self, bpmn_id, my_task): + with open(f"examples/{bpmn_id}.json") as f: + data = json.loads(f.read()) + return data, None + def set(self, bpmn_id, my_task, data): + with open(f"examples/{bpmn_id}.json", "w") as f: + f.write(json.dumps(data)) + return None + +class MyJSONFileDataStoreConverter(JSONFileDataStoreConverter): + def from_dict(self, dct): + ds = super().from_dict(dct) + ds.delegate = JSONFileDataStoreDelegate() + return ds + +SPIFF_CONFIG[JSONFileDataStore] = MyJSONFileDataStoreConverter + from spiff_arena_common.tester import run_tests_in_dir if __name__ == "__main__": From 3bb8d9b68bfe8a2567a30dbec0171d56cc0d0e86 Mon Sep 17 00:00:00 2001 From: Jon Herron Date: Fri, 27 Feb 2026 09:20:56 -0500 Subject: [PATCH 5/9] wip --- examples/jfds_test.bpmn | 38 +++++++++++++++++++++++++++++++++ examples/jsonfiledatastore.json | 2 +- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 examples/jfds_test.bpmn diff --git a/examples/jfds_test.bpmn b/examples/jfds_test.bpmn new file mode 100644 index 0000000..7c85fd3 --- /dev/null +++ b/examples/jfds_test.bpmn @@ -0,0 +1,38 @@ + + + + + Flow1_1772201981365 + + + Flow2_1772201981365 + + + + Flow1_1772201981365 + Flow2_1772201981365 + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/examples/jsonfiledatastore.json b/examples/jsonfiledatastore.json index 827e3e4..592b707 100644 --- a/examples/jsonfiledatastore.json +++ b/examples/jsonfiledatastore.json @@ -1 +1 @@ -{"x": 31} \ No newline at end of file +{"x": 32} \ No newline at end of file From 6f97e9614ba152e0613ff0c806b7ff51c5c146bb Mon Sep 17 00:00:00 2001 From: Jon Herron Date: Fri, 27 Feb 2026 09:30:42 -0500 Subject: [PATCH 6/9] wip --- examples/jfds_test.bpmn | 83 +++++++++++++++++++++++++++------ examples/jsonfiledatastore.json | 2 +- 2 files changed, 70 insertions(+), 15 deletions(-) diff --git a/examples/jfds_test.bpmn b/examples/jfds_test.bpmn index 7c85fd3..216cb1f 100644 --- a/examples/jfds_test.bpmn +++ b/examples/jfds_test.bpmn @@ -1,37 +1,92 @@ - + Flow1_1772201981365 - Flow2_1772201981365 + Flow_0k2tuld - - - Flow1_1772201981365 + + + + Flow_1cyzbm9 Flow2_1772201981365 - - + + + + Flow1_1772201981365 + Flow_1cyzbm9 + spiff_testFixture = { + "pendingTaskStack": [], +} + + + + Flow2_1772201981365 + Flow_0k2tuld + def runTests(tests): + import io + import unittest + + suite = unittest.TestSuite() + suite.addTests(tests) + stream = io.StringIO() + result = unittest.TextTestRunner(stream=stream).run(suite) + + return { + "testsRun": result.testsRun, + "wasSuccessful": result.wasSuccessful(), + "output": stream.getvalue(), + } + +def test(): + import unittest + + class TestTaskData(unittest.TestCase): + def runTest(self): + self.assertEqual(x, 11) + + return runTests([TestTaskData()]) + +spiff_testResult = test() + - + + + + + + + + + - + - - + + + - - + + - + + + + + + + + + diff --git a/examples/jsonfiledatastore.json b/examples/jsonfiledatastore.json index 592b707..4df1cc9 100644 --- a/examples/jsonfiledatastore.json +++ b/examples/jsonfiledatastore.json @@ -1 +1 @@ -{"x": 32} \ No newline at end of file +{"x": 37} \ No newline at end of file From 7e29fc25ba25338b4896064021dc5e04c81a8246 Mon Sep 17 00:00:00 2001 From: Jon Herron Date: Fri, 27 Feb 2026 09:56:55 -0500 Subject: [PATCH 7/9] wip --- examples/jfds.bpmn | 11 ++++++----- examples/jfds_test.bpmn | 28 ++++++++++++++++++++++++---- examples/jsonfiledatastore.json | 2 +- 3 files changed, 31 insertions(+), 10 deletions(-) diff --git a/examples/jfds.bpmn b/examples/jfds.bpmn index ea32e2b..9d4464a 100644 --- a/examples/jfds.bpmn +++ b/examples/jfds.bpmn @@ -27,8 +27,9 @@ DataStoreReference_0wm2yyl - jsonfiledatastore = { - "x": x + 1 + x = x + 1 +jsonfiledatastore = { + "x": x } @@ -39,6 +40,9 @@ + + + @@ -57,9 +61,6 @@ - - - diff --git a/examples/jfds_test.bpmn b/examples/jfds_test.bpmn index 216cb1f..36b7458 100644 --- a/examples/jfds_test.bpmn +++ b/examples/jfds_test.bpmn @@ -17,8 +17,16 @@ Flow1_1772201981365 Flow_1cyzbm9 + + + DataStoreReference_0xnrv41 + Property_0r4ysh6 + spiff_testFixture = { "pendingTaskStack": [], + "expected": { + "x": jsonfiledatastore["x"] + 1, + } } @@ -45,18 +53,23 @@ def test(): class TestTaskData(unittest.TestCase): def runTest(self): - self.assertEqual(x, 11) + self.assertEqual(x, spiff_testFixture["expected"]["x"]) return runTests([TestTaskData()]) spiff_testResult = test() + + + + + @@ -65,13 +78,16 @@ spiff_testResult = test() - - - + + + + + + @@ -84,6 +100,10 @@ spiff_testResult = test() + + + + diff --git a/examples/jsonfiledatastore.json b/examples/jsonfiledatastore.json index 4df1cc9..80779e4 100644 --- a/examples/jsonfiledatastore.json +++ b/examples/jsonfiledatastore.json @@ -1 +1 @@ -{"x": 37} \ No newline at end of file +{"x": 43} \ No newline at end of file From 89f19013997309daccc5ecf29f4e2266215dfa58 Mon Sep 17 00:00:00 2001 From: Jon Herron Date: Fri, 27 Feb 2026 10:17:31 -0500 Subject: [PATCH 8/9] wip --- examples/jfds.bpmn | 5 ++--- examples/jfds_test.bpmn | 20 +++++++++++++++++++- examples/jsonfiledatastore.json | 2 +- 3 files changed, 22 insertions(+), 5 deletions(-) diff --git a/examples/jfds.bpmn b/examples/jfds.bpmn index 9d4464a..7a90f22 100644 --- a/examples/jfds.bpmn +++ b/examples/jfds.bpmn @@ -27,9 +27,8 @@ DataStoreReference_0wm2yyl - x = x + 1 -jsonfiledatastore = { - "x": x + jsonfiledatastore = { + "x": x + 1 } diff --git a/examples/jfds_test.bpmn b/examples/jfds_test.bpmn index 36b7458..a380ffc 100644 --- a/examples/jfds_test.bpmn +++ b/examples/jfds_test.bpmn @@ -33,6 +33,11 @@ Flow2_1772201981365 Flow_0k2tuld + + + DataStoreReference_199b8wr + Property_1taen79 + def runTests(tests): import io import unittest @@ -53,13 +58,16 @@ def test(): class TestTaskData(unittest.TestCase): def runTest(self): - self.assertEqual(x, spiff_testFixture["expected"]["x"]) + x = jsonfiledatastore["x"] + expected = spiff_testFixture["expected"]["x"] + self.assertEqual(x, expected) return runTests([TestTaskData()]) spiff_testResult = test() + @@ -88,6 +96,12 @@ spiff_testResult = test() + + + + + + @@ -108,6 +122,10 @@ spiff_testResult = test() + + + + diff --git a/examples/jsonfiledatastore.json b/examples/jsonfiledatastore.json index 80779e4..ad24990 100644 --- a/examples/jsonfiledatastore.json +++ b/examples/jsonfiledatastore.json @@ -1 +1 @@ -{"x": 43} \ No newline at end of file +{"x": 45} \ No newline at end of file From eeb2085be98c375ed399317c4f63a22c8839882a Mon Sep 17 00:00:00 2001 From: Jon Herron Date: Fri, 27 Feb 2026 10:22:20 -0500 Subject: [PATCH 9/9] wip --- examples/jsonfiledatastore.json | 2 +- test.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/examples/jsonfiledatastore.json b/examples/jsonfiledatastore.json index ad24990..0d8ba44 100644 --- a/examples/jsonfiledatastore.json +++ b/examples/jsonfiledatastore.json @@ -1 +1 @@ -{"x": 45} \ No newline at end of file +{"x": 46} \ No newline at end of file diff --git a/test.py b/test.py index c985915..8b4e4c9 100644 --- a/test.py +++ b/test.py @@ -3,7 +3,7 @@ # dependencies = [ # "jinja2>=3.1.6", # "jsonschema>=4.26.0", -# "spiff-arena-common @/home/jon/dev/spiff-arena/dist/spiff_arena_common-0.1.9-py3-none-any.whl", +# "spiff-arena-common==0.1.9", # "spiffworkflow==3.1.2", # ] # ///