-
-
Notifications
You must be signed in to change notification settings - Fork 252
Expand file tree
/
Copy pathtest_resolver.py
More file actions
41 lines (31 loc) · 1.59 KB
/
Copy pathtest_resolver.py
File metadata and controls
41 lines (31 loc) · 1.59 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import os
from pathlib import Path
from unittest.mock import Mock
from cwltool.resolver import resolve_local
def test_resolve_local_finds_tool_in_commonwl_share(tmp_path: Path, monkeypatch) -> None:
share = tmp_path / "share" / "commonwl"
share.mkdir(parents=True)
(share / "my-tool.cwl").write_text("cwlVersion: v1.2\n", encoding="utf-8")
monkeypatch.setenv("XDG_DATA_HOME", str(tmp_path / "share"))
monkeypatch.setenv("XDG_DATA_DIRS", "/nonexistent-share/")
os.chdir(tmp_path)
resolved = resolve_local(Mock(), "my-tool.cwl")
assert resolved == (share / "my-tool.cwl").as_uri()
def test_resolve_local_share_preserves_fragment(tmp_path: Path, monkeypatch) -> None:
share = tmp_path / "share" / "commonwl"
share.mkdir(parents=True)
(share / "my-tool.cwl").write_text("cwlVersion: v1.2\n", encoding="utf-8")
monkeypatch.setenv("XDG_DATA_HOME", str(tmp_path / "share"))
monkeypatch.setenv("XDG_DATA_DIRS", "/nonexistent-share/")
os.chdir(tmp_path)
resolved = resolve_local(Mock(), "my-tool.cwl#main")
assert resolved == f"{(share / 'my-tool.cwl').as_uri()}#main"
def test_resolve_local_share_with_cwl_extension(tmp_path: Path, monkeypatch) -> None:
share = tmp_path / "share" / "commonwl"
share.mkdir(parents=True)
(share / "my-tool.cwl").write_text("cwlVersion: v1.2\n", encoding="utf-8")
monkeypatch.setenv("XDG_DATA_HOME", str(tmp_path / "share"))
monkeypatch.setenv("XDG_DATA_DIRS", "/nonexistent-share/")
os.chdir(tmp_path)
resolved = resolve_local(Mock(), "my-tool")
assert resolved == (share / "my-tool.cwl").as_uri()