def test_runtimeContext_respects_tmpdir_prefix(tmp_path: Path) -> None: """Test that RuntimeContext helper methods respects tmpdir_prefix.""" tmpdir_prefix = str(tmp_path / "foo") runtime_context = RuntimeContext({"tmpdir_prefix": tmpdir_prefix}) assert runtime_context.get_tmpdir().startswith(tmpdir_prefix) assert runtime_context.get_stagedir().startswith(tmpdir_prefix) assert runtime_context.create_tmpdir().startswith(tmpdir_prefix) assert create_tmp_dir(tmpdir_prefix).startswith(tmpdir_prefix)
def test_docker_tmpdir_prefix(tmp_path: Path) -> None: """Test that DockerCommandLineJob respects temp directory directives.""" (tmp_path / "3").mkdir() tmpdir_prefix = str(tmp_path / "3" / "ttmp") runtime_context = RuntimeContext({ "tmpdir_prefix": tmpdir_prefix, "user_space_docker_cmd": None }) builder = Builder( {}, [], [], {}, schema.Names(), [], [], {}, None, None, StdFsAccess, StdFsAccess(""), None, 0.1, False, False, False, "", runtime_context.get_outdir(), runtime_context.get_tmpdir(), runtime_context.get_stagedir(), INTERNAL_VERSION, ) job = DockerCommandLineJob(builder, {}, PathMapper, [], [], "") runtime: List[str] = [] volume_writable_file = MapperEnt(resolved=get_data("tests/2.fastq"), target="foo", type=None, staged=None) (tmp_path / "1").mkdir() job.add_writable_file_volume(runtime, volume_writable_file, None, str(tmp_path / "1" / "writable_file")) children = sorted((tmp_path / "1").glob("*")) assert len(children) == 1 subdir = tmp_path / children[0] assert subdir.name.startswith("writable_file") assert len(sorted(subdir.glob("*"))) == 1 assert (subdir / "2.fastq").exists() resolved_writable_dir = tmp_path / "data_orig" resolved_writable_dir.mkdir(parents=True) volume_dir = MapperEnt(resolved=str(resolved_writable_dir), target="bar", type=None, staged=None) (tmp_path / "2").mkdir() job.add_writable_directory_volume(runtime, volume_dir, None, str(tmp_path / "2" / "dir")) children = sorted((tmp_path / "2").glob("*")) assert len(children) == 1 subdir = tmp_path / "2" / children[0] assert subdir.name.startswith("dir") assert len(sorted(subdir.glob("*"))) == 1 assert (subdir / "data_orig").exists() cidfile = job.create_runtime({}, runtime_context)[1] assert cidfile and cidfile.startswith(tmpdir_prefix) volume_file = MapperEnt(resolved="Hoopla!", target="baz", type=None, staged=None) (tmp_path / "4").mkdir() job.create_file_and_add_volume(runtime, volume_file, None, None, str(tmp_path / "4" / "file")) children = sorted((tmp_path / "4").glob("*")) assert len(children) == 1 subdir = tmp_path / "4" / children[0] assert subdir.name.startswith("file") assert len(sorted(subdir.glob("*"))) == 1 assert (subdir / "baz").exists()