def test_set_duplicate_stdin(self): job = AbstractJob() job.add_inputs(File("a")) with pytest.raises(DuplicateError) as e: job.set_stdin(File("a")) assert "file: {file}".format(file=File("a")) in str(e)
def test_add_duplicate_checkpoint(self): job = AbstractJob() job.add_inputs(File("abc")) with pytest.raises(DuplicateError) as e: job.add_checkpoint(File("abc")) assert "file: {file}".format(file=File("abc")) in str(e)
def test_get_inputs(self): job = AbstractJob() f1 = File("a") job.add_inputs(f1) assert job.get_inputs() == {f1}
def test_add_inputs(self): job = AbstractJob() f1 = File("a") f2 = File("b") job.add_inputs(f1, f2) assert job.get_inputs() == {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_add_invalid_input(self): job = AbstractJob() with pytest.raises(TypeError) as e: job.add_inputs(123, "abc") assert "invalid input_file: 123" in str(e)