def test_run_concurrent_same_name(self): couler.concurrent([ lambda: whalesay("hello1"), lambda: whalesay("hello1"), lambda: tails(), ]) self.verify_concurrent_step("run_concurrent_golden_2.yaml")
def test_run_concurrent_callable(self): callable_cls = self.create_callable_cls(lambda: whalesay("hello1")) func_names = ["a", "b", "c", "self"] instance = callable_cls() for func_name in func_names: if func_name == "self": func = instance else: func = getattr(instance, func_name) couler.concurrent([func, lambda: heads(), lambda: tails()]) self.verify_concurrent_step("run_concurrent_golden.yaml") couler._cleanup()
def test_run_concurrent_recursive(self): def workflow_one(): whalesay("workflow one") whalesay("t1") whalesay("t2") def workflow_two(): whalesay("workflow two") whalesay("workflow start") couler.concurrent([lambda: workflow_one(), lambda: workflow_two()], subtasks=True) whalesay("workflow finish") self.check_argo_yaml("run_concurrent_subtasks_golden.yaml")
def test_concurrent_with_output(self): def job_one(): output_place = couler.create_parameter_artifact( path="/tmp/job_one.txt") return couler.run_container( image="python:3.6", args="echo -n step one > %s" % output_place.path, output=output_place, ) def job_two(): output_place = couler.create_parameter_artifact( path="/tmp/job_two.txt") return couler.run_container( image="python:3.6", args="echo -n step two > %s" % output_place.path, output=output_place, ) def summary(messages): couler.run_container(image="docker/whalesay", command="cowsay", args=messages) rets = couler.concurrent([lambda: job_one(), lambda: job_two()]) messages = [rets[0][0], rets[1][0]] summary(messages) self.verify_concurrent_step("run_concurrent_golden_3.yaml")
def test_run_concurrent(self): couler.concurrent( [lambda: whalesay("hello1"), lambda: heads(), lambda: tails()]) self.verify_concurrent_step("run_concurrent_golden.yaml")