Skip to content

Commit 0886e2d

Browse files
Merge pull request #18 from InformaticsMatters/step-specification-as-an-bject
Step specification as an object
2 parents 58d100c + 95ac53b commit 0886e2d

13 files changed

+142
-122
lines changed

tests/test_decoder.py

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,19 @@
4343
)
4444
assert _DUPLICATE_WORKFLOW_VARIABLE_NAMES_WORKFLOW
4545

46+
_STEP_SPECIFICATION_VARIABLE_NAMES_WORKFLOW_FILE: str = os.path.join(
47+
os.path.dirname(__file__),
48+
"workflow-definitions",
49+
"step-specification-variable-names.yaml",
50+
)
51+
with open(
52+
_STEP_SPECIFICATION_VARIABLE_NAMES_WORKFLOW_FILE, "r", encoding="utf8"
53+
) as workflow_file:
54+
_STEP_SPECIFICATION_VARIABLE_NAMES_WORKFLOW: Dict[str, Any] = yaml.safe_load(
55+
workflow_file
56+
)
57+
assert _STEP_SPECIFICATION_VARIABLE_NAMES_WORKFLOW
58+
4659

4760
def test_validate_schema_for_minimal():
4861
# Arrange
@@ -110,6 +123,16 @@ def test_validate_schema_for_python_simple_molprops():
110123
assert error is None
111124

112125

126+
def test_validate_schema_for_step_specification_variable_names():
127+
# Arrange
128+
129+
# Act
130+
error = decoder.validate_schema(_STEP_SPECIFICATION_VARIABLE_NAMES_WORKFLOW)
131+
132+
# Assert
133+
assert error is None
134+
135+
113136
def test_get_workflow_variables_for_smiple_python_molprops():
114137
# Arrange
115138

tests/workflow-definitions/duplicate-step-names.yaml

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,8 +4,12 @@ kind-version: "2024.1"
44
name: duplicate-step-names
55
steps:
66
- name: step-1
7-
specification: >-
8-
{}
7+
specification:
8+
collection: a
9+
job: b
10+
version: '1.0.0'
911
- name: step-1
10-
specification: >-
11-
{}
12+
specification:
13+
collection: a
14+
job: b
15+
version: '2.0.0'

tests/workflow-definitions/duplicate-workflow-variable-names.yaml

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,13 @@ variables:
1717
steps:
1818
- name: step1
1919
description: Add column 1
20-
specification: >-
21-
{
22-
"collection": "workflow-engine-unit-test-jobs",
23-
"job": "rdkit-molprops",
24-
"version": "1.0.0",
25-
"variables": {
26-
"name": "col1",
27-
"value": 123
28-
}
29-
}
20+
specification:
21+
collection: workflow-engine-unit-test-jobs
22+
job: rdkit-molprops
23+
version: "1.0.0"
24+
variables:
25+
name: "col1"
26+
value: 123
3027
inputs:
3128
- input: inputFile
3229
from:
@@ -37,16 +34,13 @@ steps:
3734

3835
- name: step2
3936
description: Add column 2
40-
specification: >-
41-
{
42-
"collection": "workflow-engine-unit-test-jobs",
43-
"job": "cluster-butina",
44-
"version":"1.0.0",
45-
"variables": {
46-
"name":"col2",
47-
"value":"999"
48-
}
49-
}
37+
specification:
38+
collection: workflow-engine-unit-test-jobs
39+
job: cluster-butina
40+
version: "1.0.0"
41+
variables:
42+
name: "col2"
43+
value: "999"
5044
inputs:
5145
- input: inputFile
5246
from:

tests/workflow-definitions/example-nop-fail.yaml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,7 @@ description: >-
66
A workflow with one step that fails
77
steps:
88
- name: step-1
9-
specification: >-
10-
{
11-
"collection": "workflow-engine-unit-test-jobs",
12-
"job": "nop-fail",
13-
"version": "1.0.0"
14-
}
9+
specification:
10+
collection: workflow-engine-unit-test-jobs
11+
job: nop-fail
12+
version: "1.0.0"

tests/workflow-definitions/example-smiles-to-file.yaml

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,7 @@ description: >-
77
The step takes an input string and the Job creates a file from it.
88
steps:
99
- name: step-1
10-
specification: >-
11-
{
12-
"collection": "workflow-engine-unit-test-jobs",
13-
"job": "smiles-to-file",
14-
"version": "1.0.0"
15-
}
10+
specification:
11+
collection: workflow-engine-unit-test-jobs
12+
job: smiles-to-file
13+
version: "1.0.0"

tests/workflow-definitions/example-two-step-nop.yaml

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,12 @@ description: >-
77
The steps do nothing, take no arguments, and simply return success.
88
steps:
99
- name: step-1
10-
specification: >-
11-
{
12-
"collection": "workflow-engine-unit-test-jobs",
13-
"job": "nop",
14-
"version": "1.0.0"
15-
}
10+
specification:
11+
collection: workflow-engine-unit-test-jobs
12+
job: nop
13+
version: "1.0.0"
1614
- name: step-2
17-
specification: >-
18-
{
19-
"collection": "workflow-engine-unit-test-jobs",
20-
"job": "nop",
21-
"version": "1.0.0"
22-
}
15+
specification:
16+
collection: workflow-engine-unit-test-jobs
17+
job: nop
18+
version: "1.0.0"

tests/workflow-definitions/minimal.yaml

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,5 +4,7 @@ kind-version: "2024.1"
44
name: workflow-minimal
55
steps:
66
- name: step-1
7-
specification: >-
8-
{}
7+
specification:
8+
collection: a
9+
job: b
10+
version: "1.0.0"

tests/workflow-definitions/shortcut-example-1.yaml

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,23 +6,19 @@ description: The shortcut example 1 workflow
66
steps:
77
- name: example-1-step-1
88
description: The first step
9-
specification: >-
10-
{
11-
"collection": "workflow-engine-unit-test-jobs",
12-
"job": "shortcut-example-1-process-a",
13-
"version": "1.0.0"
14-
}
9+
specification:
10+
collection: workflow-engine-unit-test-jobs
11+
job: shortcut-example-1-process-a
12+
version: "1.0.0"
1513
outputs:
1614
- output: 'outputFile'
1715
as: 'a.sdf'
1816
- name: example-1-step-2
1917
description: The first step
20-
specification: >-
21-
{
22-
"collection": "workflow-engine-unit-test-jobs",
23-
"job": "shortcut-example-1-process-b",
24-
"version": "1.0.0"
25-
}
18+
specification:
19+
collection: workflow-engine-unit-test-jobs
20+
job: shortcut-example-1-process-b
21+
version: "1.0.0"
2622
inputs:
2723
- input: 'inputFile'
2824
from:

tests/workflow-definitions/simple-python-molprops.yaml

Lines changed: 14 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -17,16 +17,13 @@ variables:
1717
steps:
1818
- name: step1
1919
description: Add column 1
20-
specification: >-
21-
{
22-
"collection": "workflow-engine-unit-test-jobs",
23-
"job": "rdkit-molprops",
24-
"version": "1.0.0",
25-
"variables": {
26-
"name": "col1",
27-
"value": 123
28-
}
29-
}
20+
specification:
21+
collection: workflow-engine-unit-test-jobs
22+
job: rdkit-molprops
23+
version: "1.0.0"
24+
variables:
25+
name: "col1"
26+
value: 123
3027
inputs:
3128
- input: inputFile
3229
from:
@@ -37,16 +34,13 @@ steps:
3734

3835
- name: step2
3936
description: Add column 2
40-
specification: >-
41-
{
42-
"collection": "workflow-engine-unit-test-jobs",
43-
"job": "cluster-butina",
44-
"version":"1.0.0",
45-
"variables": {
46-
"name":"col2",
47-
"value":"999"
48-
}
49-
}
37+
specification:
38+
collection: workflow-engine-unit-test-jobs
39+
job: cluster-butina
40+
version: "1.0.0"
41+
variables:
42+
name: "col2"
43+
value: "999"
5044
inputs:
5145
- input: inputFile
5246
from:
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
---
2+
kind: DataManagerWorkflow
3+
kind-version: "2024.1"
4+
name: step-variables
5+
description: Test a lot of variables whose format is supported
6+
steps:
7+
- name: step-1
8+
specification:
9+
collection: a
10+
job: b
11+
version: '1.0.0'
12+
variables:
13+
_a: 1
14+
A-1: 2.0
15+
a_14_: A string
16+
A-Long_boolean_variable_Name: true

0 commit comments

Comments
 (0)