@@ -593,6 +593,46 @@ def test_wf_docker_2(plugin, tmpdir):
593
593
assert res .output .out == "Hello!"
594
594
595
595
596
+ @need_docker
597
+ @pytest .mark .parametrize ("plugin" , Plugins )
598
+ def test_wf_docker_3 (plugin , tmpdir ):
599
+ """ a workflow with two connected task
600
+ the first one read the file that contains the name of the image,
601
+ the output is passed to the second task as the image used to run the task
602
+ """
603
+ with open (tmpdir .join ("image.txt" ), "w" ) as f :
604
+ f .write ("ubuntu" )
605
+
606
+ wf = Workflow (name = "wf" , input_spec = ["cmd1" , "cmd2" ])
607
+ wf .inputs .cmd1 = ["cat" , "/tmp_dir/image.txt" ]
608
+ wf .inputs .cmd2 = ["echo" , "image passed to the second task:" ]
609
+ wf .add (
610
+ DockerTask (
611
+ name = "docky_cat" ,
612
+ image = "busybox" ,
613
+ executable = wf .lzin .cmd1 ,
614
+ bindings = [(str (tmpdir ), "/tmp_dir" , "ro" )],
615
+ strip = True ,
616
+ )
617
+ )
618
+ wf .add (
619
+ DockerTask (
620
+ name = "docky_echo" ,
621
+ image = wf .docky_cat .lzout .stdout ,
622
+ executable = wf .lzin .cmd2 ,
623
+ args = wf .docky_cat .lzout .stdout ,
624
+ strip = True ,
625
+ )
626
+ )
627
+ wf .set_output ([("out" , wf .docky_echo .lzout .stdout )])
628
+
629
+ with Submitter (plugin = plugin ) as sub :
630
+ wf (submitter = sub )
631
+
632
+ res = wf .result ()
633
+ assert res .output .out == "image passed to the second task: ubuntu"
634
+
635
+
596
636
# tests with customized output_spec
597
637
598
638
0 commit comments