def test_dataset_as_dict(shell, dataset, job_spec): with chpwd(dataset.path): orc = orcs.DataladLocalRunOrchestrator(shell, submission_type="local", job_spec=job_spec) d = orc.as_dict() # Check for keys that DataladOrchestrator should extend # OrchestratorError.asdict() with. assert "head" in d assert "dataset_id" in d
def test_orc_datalad_run_results_missing(job_spec, dataset, shell): with chpwd(dataset.path): orc = orcs.DataladLocalRunOrchestrator( shell, submission_type="local", job_spec=job_spec) orc.prepare_remote() orc.submit() orc.follow() os.unlink(op.join(orc.root_directory, "outputs", "{}.tar.gz".format(orc.jobid))) with pytest.raises(OrchestratorError): orc.fetch()
def test_orc_datalad_run_failed(job_spec, dataset, shell): job_spec["command_str"] = "iwillfail" job_spec["inputs"] = [] with chpwd(dataset.path): orc = orcs.DataladLocalRunOrchestrator( shell, submission_type="local", job_spec=job_spec) orc.prepare_remote() orc.submit() orc.follow() with swallow_logs(new_level=logging.INFO) as log: orc.fetch() assert "Job status" in log.out assert "stderr:" in log.out
def test_orc_datalad_run_change_head(job_spec, dataset, shell): with chpwd(dataset.path): orc = orcs.DataladLocalRunOrchestrator( shell, submission_type="local", job_spec=job_spec) orc.prepare_remote() orc.submit() orc.follow() create_tree(dataset.path, {"sinceyouvebeengone": "imsomovingon,yeahyeah"}) dataset.add(".") orc.fetch() ref = "refs/reproman/{}".format(orc.jobid) assert not dataset.repo.is_ancestor(ref, "HEAD") with orcs.head_at(dataset, ref): assert dataset.repo.file_has_content("out") assert open("out").read() == "content\nmore\n"
def test_orc_no_dataset(tmpdir, shell): with chpwd(str(tmpdir)): with pytest.raises(OrchestratorError): orcs.DataladLocalRunOrchestrator(shell, submission_type="local")
def test_orc_no_datalad(tmpdir, shell): with chpwd(str(tmpdir)): with pytest.raises(MissingExternalDependency): orcs.DataladLocalRunOrchestrator(shell, submission_type="local")