@@ -131,6 +131,88 @@ def test_validate_simple_python_molprops():
131
131
assert error .error_msg is None
132
132
133
133
134
+ def test_validate_simple_python_molprops_with_options_when_missing_required ():
135
+ # Arrange
136
+ workflow_file : str = os .path .join (
137
+ os .path .dirname (__file__ ),
138
+ "workflow-definitions" ,
139
+ "simple-python-molprops-with-options.yaml" ,
140
+ )
141
+ with open (workflow_file , "r" , encoding = "utf8" ) as workflow_file :
142
+ workflow : dict [str , Any ] = yaml .load (workflow_file , Loader = yaml .FullLoader )
143
+ assert workflow
144
+ variables = {
145
+ "candidateMolecules" : "input.sdf" ,
146
+ "clusteredMolecules" : "output.sdf" ,
147
+ }
148
+
149
+ # Act
150
+ error = WorkflowValidator .validate (
151
+ level = ValidationLevel .RUN ,
152
+ workflow_definition = workflow ,
153
+ variables = variables ,
154
+ )
155
+
156
+ # Assert
157
+ assert error .error_num == 7
158
+ assert error .error_msg == [
159
+ "Missing workflow variable values for: rdkitPropertyValue"
160
+ ]
161
+
162
+
163
+ def test_validate_simple_python_molprops_with_options ():
164
+ # Arrange
165
+ workflow_file : str = os .path .join (
166
+ os .path .dirname (__file__ ),
167
+ "workflow-definitions" ,
168
+ "simple-python-molprops-with-options.yaml" ,
169
+ )
170
+ with open (workflow_file , "r" , encoding = "utf8" ) as workflow_file :
171
+ workflow : dict [str , Any ] = yaml .load (workflow_file , Loader = yaml .FullLoader )
172
+ assert workflow
173
+ variables = {
174
+ "candidateMolecules" : "input.sdf" ,
175
+ "clusteredMolecules" : "output.sdf" ,
176
+ "rdkitPropertyName" : "col1" ,
177
+ "rdkitPropertyValue" : 123 ,
178
+ }
179
+
180
+ # Act
181
+ error = WorkflowValidator .validate (
182
+ level = ValidationLevel .RUN ,
183
+ workflow_definition = workflow ,
184
+ variables = variables ,
185
+ )
186
+
187
+ # Assert
188
+ assert error .error_num == 0
189
+ assert error .error_msg is None
190
+
191
+
192
+ def test_validate_simple_python_molprops_with_missing_input ():
193
+ # Arrange
194
+ workflow_file : str = os .path .join (
195
+ os .path .dirname (__file__ ), "workflow-definitions" , "simple-python-molprops.yaml"
196
+ )
197
+ with open (workflow_file , "r" , encoding = "utf8" ) as workflow_file :
198
+ workflow : dict [str , Any ] = yaml .load (workflow_file , Loader = yaml .FullLoader )
199
+ assert workflow
200
+ variables = {"clusteredMolecules" : "output.sdf" }
201
+
202
+ # Act
203
+ error = WorkflowValidator .validate (
204
+ level = ValidationLevel .RUN ,
205
+ workflow_definition = workflow ,
206
+ variables = variables ,
207
+ )
208
+
209
+ # Assert
210
+ assert error .error_num == 7
211
+ assert error .error_msg == [
212
+ "Missing workflow variable values for: candidateMolecules"
213
+ ]
214
+
215
+
134
216
def test_validate_duplicate_workflow_variable_names ():
135
217
# Arrange
136
218
workflow_file : str = os .path .join (
0 commit comments