def test_set_duplicate_stdout(self): job = AbstractJob() job.add_outputs(File("a")) with pytest.raises(DuplicateError) as e: job.set_stdout(File("a")) assert "file: {file}".format(file=File("a")) in str(e)
def test_get_outputs(self): job = AbstractJob() f1 = File("a") job.add_outputs(f1) assert job.get_outputs() == {f1}
def test_add_outputs(self): job = AbstractJob() f1 = File("a") f2 = File("b") job.add_outputs(f1, f2) assert job.get_outputs() == {f1, f2}
def test_add_inputs_and_outputs(self): job = AbstractJob() job.add_inputs(File("a")) job.add_outputs(File("b")) with pytest.raises(DuplicateError) as e: job.add_inputs(File("b")) assert "file: {file}".format(file=File("b")) in str(e)
def test_tojson(self): j = AbstractJob(_id="aj", node_label="test") j.set_stdin("stdin") j.set_stdout("stdout") j.set_stderr("stderr") j.add_args("-i", File("f1")) j.add_inputs(File("if1"), File("if2")) j.add_outputs(File("of1"), File("of2")) j.add_checkpoint(File("cpf")) result = json.loads(json.dumps(j, cls=_CustomEncoder)) result["uses"] = sorted(result["uses"], key=lambda use: use["lfn"]) expected = { "id": "aj", "nodeLabel": "test", "arguments": ["-i", "f1"], "stdin": "stdin", "stdout": "stdout", "stderr": "stderr", "uses": [ { "lfn": "stdin", "type": "input" }, { "lfn": "if1", "type": "input" }, { "lfn": "if2", "type": "input" }, { "lfn": "stdout", "type": "output", "stageOut": True, "registerReplica": False, }, { "lfn": "stderr", "type": "output", "stageOut": True, "registerReplica": False, }, { "lfn": "of1", "type": "output", "stageOut": True, "registerReplica": False, }, { "lfn": "of2", "type": "output", "stageOut": True, "registerReplica": False, }, { "lfn": "cpf", "type": "checkpoint", "stageOut": True, "registerReplica": False, }, ], } expected["uses"] = sorted(expected["uses"], key=lambda use: use["lfn"]) assert result == expected
def test_set_duplicate_stderr(self): job = AbstractJob() job.add_outputs(File("a")) with pytest.raises(DuplicateError): job.set_stderr(File("a"))
def test_add_invalid_output(self): job = AbstractJob() with pytest.raises(TypeError) as e: job.add_outputs(123, "abc") assert "invalid output_file: 123" in str(e)