Skip to content

Commit 2d3a001

Browse files
committed
TST: added tests for singularity version checks
1 parent 3c61be5 commit 2d3a001

File tree

1 file changed

+114
-0
lines changed

1 file changed

+114
-0
lines changed

tests/test_singularity_versions.py

+114
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
import cwltool.singularity
2+
from cwltool.singularity import (reset_singularity_version_cache,
3+
get_version,
4+
is_apptainer_1_or_newer,
5+
is_version_2_6,
6+
is_version_3_or_newer,
7+
is_version_3_1_or_newer,
8+
is_version_3_4_or_newer)
9+
10+
11+
def set_dummy_check_output(name, version):
12+
cwltool.singularity.check_output = lambda c, universal_newlines: name + " version " + version
13+
14+
15+
16+
def test_get_version():
17+
set_dummy_check_output("apptainer", "1.0.1")
18+
reset_singularity_version_cache()
19+
v = get_version()
20+
assert isinstance(v, tuple)
21+
assert isinstance(v[0], list)
22+
assert isinstance(v[1], str)
23+
assert cwltool.singularity._SINGULARITY_VERSION is not None # pylint: disable=protected-access
24+
assert len(cwltool.singularity._SINGULARITY_FLAVOR) > 0 # pylint: disable=protected-access
25+
v_cached = get_version()
26+
assert v == v_cached
27+
28+
assert v[0][0] == 1
29+
assert v[0][1] == 0
30+
assert v[0][2] == 1
31+
assert v[1] == "apptainer"
32+
33+
set_dummy_check_output("singularity", "3.8.5")
34+
reset_singularity_version_cache()
35+
v = get_version()
36+
37+
assert v[0][0] == 3
38+
assert v[0][1] == 8
39+
assert v[0][2] == 5
40+
assert v[1] == "singularity"
41+
42+
43+
def test_version_checks():
44+
set_dummy_check_output("apptainer", "1.0.1")
45+
reset_singularity_version_cache()
46+
assert is_apptainer_1_or_newer()
47+
assert not is_version_2_6()
48+
assert is_version_3_or_newer()
49+
assert is_version_3_1_or_newer()
50+
assert is_version_3_4_or_newer()
51+
52+
set_dummy_check_output("apptainer", "0.0.1")
53+
reset_singularity_version_cache()
54+
assert not is_apptainer_1_or_newer()
55+
assert not is_version_2_6()
56+
assert not is_version_3_or_newer()
57+
assert not is_version_3_1_or_newer()
58+
assert not is_version_3_4_or_newer()
59+
60+
set_dummy_check_output("singularity", "0.0.1")
61+
reset_singularity_version_cache()
62+
assert not is_apptainer_1_or_newer()
63+
assert not is_version_2_6()
64+
assert not is_version_3_or_newer()
65+
assert not is_version_3_1_or_newer()
66+
assert not is_version_3_4_or_newer()
67+
68+
set_dummy_check_output("singularity", "0.1")
69+
reset_singularity_version_cache()
70+
assert not is_apptainer_1_or_newer()
71+
assert not is_version_2_6()
72+
assert not is_version_3_or_newer()
73+
assert not is_version_3_1_or_newer()
74+
assert not is_version_3_4_or_newer()
75+
76+
set_dummy_check_output("singularity", "2.6")
77+
reset_singularity_version_cache()
78+
assert not is_apptainer_1_or_newer()
79+
assert is_version_2_6()
80+
assert not is_version_3_or_newer()
81+
assert not is_version_3_1_or_newer()
82+
assert not is_version_3_4_or_newer()
83+
84+
set_dummy_check_output("singularity", "3.0")
85+
reset_singularity_version_cache()
86+
assert not is_apptainer_1_or_newer()
87+
assert not is_version_2_6()
88+
assert is_version_3_or_newer()
89+
assert not is_version_3_1_or_newer()
90+
assert not is_version_3_4_or_newer()
91+
92+
set_dummy_check_output("singularity", "3.1")
93+
reset_singularity_version_cache()
94+
assert not is_apptainer_1_or_newer()
95+
assert not is_version_2_6()
96+
assert is_version_3_or_newer()
97+
assert is_version_3_1_or_newer()
98+
assert not is_version_3_4_or_newer()
99+
100+
set_dummy_check_output("singularity", "3.4")
101+
reset_singularity_version_cache()
102+
assert not is_apptainer_1_or_newer()
103+
assert not is_version_2_6()
104+
assert is_version_3_or_newer()
105+
assert is_version_3_1_or_newer()
106+
assert is_version_3_4_or_newer()
107+
108+
set_dummy_check_output("singularity", "3.6.3")
109+
reset_singularity_version_cache()
110+
assert not is_apptainer_1_or_newer()
111+
assert not is_version_2_6()
112+
assert is_version_3_or_newer()
113+
assert is_version_3_1_or_newer()
114+
assert is_version_3_4_or_newer()

0 commit comments

Comments
 (0)