@@ -220,6 +220,46 @@ def test_loop_value_from() -> None:
220220 assert json .loads (stream .getvalue ()) == expected
221221
222222
223+ def test_loop_value_from_literal_file () -> None :
224+ """Test a loop case with a literal file generated by a valueFrom directive inside the loop."""
225+ stream = StringIO ()
226+ params = [
227+ "--enable-ext" ,
228+ get_data ("tests/loop-ext/value-from-loop-2.cwl" ),
229+ ]
230+ main (params , stdout = stream )
231+ expected = {
232+ "result" : [
233+ "first,0-sha1$e445e7ebf0b1e19e5eb7f3e8e4d86f5424c4b103" ,
234+ "first,1-sha1$c2ee1cb0abf988529ae1d67c5a6798a9db9e133a" ,
235+ "first,2-sha1$7663c0076cdf1dbe14373237e8c2eea8735b04f2" ,
236+ "first,3-sha1$83b77de68c3c6cce92a381adc9159d6e59332545" ,
237+ "first,4-sha1$eb74efd51e4399144f465534f4077f515d996d57" ,
238+ ]
239+ }
240+ assert json .loads (stream .getvalue ()) == expected
241+
242+
243+ def test_loop_and_value_from_literal_file () -> None :
244+ """Test a loop case with a literal file generated by a valueFrom directive outside the loop."""
245+ stream = StringIO ()
246+ params = [
247+ "--enable-ext" ,
248+ get_data ("tests/loop-ext/value-from-loop-3.cwl" ),
249+ ]
250+ main (params , stdout = stream )
251+ expected = {
252+ "result" : [
253+ "first,0-sha1$e445e7ebf0b1e19e5eb7f3e8e4d86f5424c4b103" ,
254+ "first,0-sha1$e445e7ebf0b1e19e5eb7f3e8e4d86f5424c4b103" ,
255+ "first,0-sha1$e445e7ebf0b1e19e5eb7f3e8e4d86f5424c4b103" ,
256+ "first,0-sha1$e445e7ebf0b1e19e5eb7f3e8e4d86f5424c4b103" ,
257+ "first,0-sha1$e445e7ebf0b1e19e5eb7f3e8e4d86f5424c4b103" ,
258+ ]
259+ }
260+ assert json .loads (stream .getvalue ()) == expected
261+
262+
223263def test_loop_value_from_fail_no_requirement () -> None :
224264 """Test workflow loop fails for valueFrom without StepInputExpressionRequirement."""
225265 params = [
0 commit comments