@@ -131,6 +131,88 @@ def test_validate_simple_python_molprops():
131131 assert error .error_msg is None
132132
133133
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+
134216def test_validate_duplicate_workflow_variable_names ():
135217 # Arrange
136218 workflow_file : str = os .path .join (
0 commit comments