def test_error_run_result(): """Test results of an erroneous workflow run.""" r = RunResult(arguments={}) r.add(ExecResult(step=ContainerStep(identifier='s1', image='test'), returncode=0)) assert r.exception is None assert r.returncode == 0 r.add(ExecResult(step=ContainerStep(identifier='s2', image='test'), returncode=1, stderr=['e1', 'e2'], exception=ValueError())) # noqa: E501 with pytest.raises(ValueError): r.raise_for_status() assert r.exception is not None assert r.returncode == 1 assert r.stdout == [] assert r.stderr == ['e1', 'e2'] r = RunResult(arguments={}) r.add(ExecResult(step=ContainerStep(identifier='s3', image='test'), returncode=1, stderr=['e1', 'e2'])) with pytest.raises(err.FlowservError): r.raise_for_status()
def test_successful_run_result(): """Test results of a successful workflow run.""" r = RunResult(arguments={'a': 1}) r.add(ExecResult(step=ContainerStep(identifier='s1', image='test1'), returncode=0, stdout=['o1'])) r.context['a'] = 2 r.add(ExecResult(step=ContainerStep(identifier='s2', image='test2'), returncode=0, stdout=['o2', 'o3'])) r.context['b'] = 1 assert r.exception is None assert r.returncode == 0 r.raise_for_status() assert r.stdout == ['o1', 'o2', 'o3'] assert r.stderr == [] assert r.get('a') == 2 assert r.get('b') == 1 result = r.steps[0] assert result.step.image == 'test1' assert result.stdout == ['o1'] result = r.steps[1] assert result.step.image == 'test2' assert result.stdout == ['o2', 'o3']