-
Notifications
You must be signed in to change notification settings - Fork 62
Closed
Labels
bugSomething isn't workingSomething isn't working
Description
If I create a wfnd first and later use within wf that has different input it works properly only if wfnd was not run before wf. See the tests:
@pytest.mark.parametrize("plugin", Plugins)
def test_wfasnd_wfndupdate(plugin):
""" workflow as a node
workflow-node with one task and no splitter
wfasnode input is updated to use the main workflow input
"""
wfnd = Workflow(name="wfnd", input_spec=["x"], x=2)
wfnd.add(add2(name="add2", x=wfnd.lzin.x))
wfnd.set_output([("out", wfnd.add2.lzout.out)])
wf = Workflow(name="wf", input_spec=["x"], x=3)
wfnd.inputs.x = wf.lzin.x
wf.add(wfnd)
wf.set_output([("out", wf.wfnd.lzout.out)])
wf.plugin = plugin
with Submitter(plugin=plugin) as sub:
sub(wf)
results = wf.result()
assert results.output.out == 5
assert wf.output_dir.exists()
@pytest.mark.xfail(reason="wfnd is not updating input for it's nodes")
@pytest.mark.parametrize("plugin", Plugins)
def test_wfasnd_wfndupdate_rerun(plugin):
""" workflow as a node
workflow-node with one task and no splitter
wfasnode is run first and later is
updated to use the main workflow input
"""
wfnd = Workflow(name="wfnd", input_spec=["x"], x=2)
wfnd.add(add2(name="add2", x=wfnd.lzin.x))
wfnd.set_output([("out", wfnd.add2.lzout.out)])
with Submitter(plugin=plugin) as sub:
sub(wfnd)
wf = Workflow(name="wf", input_spec=["x"], x=3)
# trying to set before
wfnd.inputs.x = wf.lzin.x
wf.add(wfnd)
# trying to set after add...
wf.wfnd.inputs.x = wf.lzin.x
wf.set_output([("out", wf.wfnd.lzout.out)])
wf.plugin = plugin
results = wf.result()
assert results.output.out == 5
assert wf.output_dir.exists()
Haven't debug too much, but it looks like in the second test the input wf.wfnd.inputs.x is not taken from the wf.inputs (it shows x=LF('wf', 'x')), so the wf.wfnd.add2 takes the previously set input, i.e. 2
Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working