Skip to content

Commit a527417

Browse files
authored
Merge pull request #63 from SpikeInterface/update-tests
Clean singularity cache before each run
2 parents 10f5609 + 28df0ac commit a527417

2 files changed

Lines changed: 61 additions & 21 deletions

File tree

tests/test_containers_gpu.py

Lines changed: 23 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,11 @@
1212
DOCKER_SINGULARITY = "singularity" # "docker"
1313

1414

15+
def clean_singularity_cache():
16+
print("Cleaning singularity cache")
17+
os.system("singularity cache clean --force")
18+
19+
1520
def generate_run_kwargs():
1621
test_recording, _ = se.toy_example(
1722
duration=30,
@@ -53,27 +58,37 @@ def run_kwargs(work_dir):
5358

5459

5560
def test_kilosort2(run_kwargs):
56-
sorting = ss.run_kilosort2(output_folder="kilosort2", **run_kwargs)
61+
if DOCKER_SINGULARITY == "singularity":
62+
clean_singularity_cache()
63+
sorting = ss.run_sorter("kilosort2", output_folder="kilosort2", **run_kwargs)
5764
print(sorting)
5865

5966

6067
def test_kilosort2_5(run_kwargs):
61-
sorting = ss.run_kilosort2_5(output_folder="kilosort2_5", **run_kwargs)
68+
if DOCKER_SINGULARITY == "singularity":
69+
clean_singularity_cache()
70+
sorting = ss.run_sorter("kilosort2_5", output_folder="kilosort2_5", **run_kwargs)
6271
print(sorting)
6372

6473

6574
def test_kilosort3(run_kwargs):
66-
sorting = ss.run_kilosort3(output_folder="kilosort3", **run_kwargs)
75+
if DOCKER_SINGULARITY == "singularity":
76+
clean_singularity_cache()
77+
sorting = ss.run_sorter("kilosort3", output_folder="kilosort3", **run_kwargs)
6778
print(sorting)
6879

6980

70-
def test_yass(run_kwargs):
71-
sorting = ss.run_yass(output_folder="yass", **run_kwargs)
81+
def test_pykilosort(run_kwargs):
82+
if DOCKER_SINGULARITY == "singularity":
83+
clean_singularity_cache()
84+
sorting = ss.run_sorter("pykilosort", output_folder="pykilosort", **run_kwargs)
7285
print(sorting)
7386

74-
75-
def test_pykilosort(run_kwargs):
76-
sorting = ss.run_pykilosort(output_folder="pykilosort", **run_kwargs)
87+
@pytest.mark.skip(reason="Legcay sorter: requires Python=3.7")
88+
def test_yass(run_kwargs):
89+
if DOCKER_SINGULARITY == "singularity":
90+
clean_singularity_cache()
91+
sorting = ss.run_sorter("yass", output_folder="yass", **run_kwargs)
7792
print(sorting)
7893

7994
if __name__ == "__main__":

tests/test_singularity_containers.py

Lines changed: 38 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,10 @@
1111
# test docker or singularity
1212
DOCKER_SINGULARITY = "singularity" # "docker"
1313

14+
def clean_singularity_cache():
15+
print("Cleaning singularity cache")
16+
os.system("singularity cache clean --force")
17+
1418

1519
def generate_run_kwargs():
1620
test_recording, _ = se.toy_example(
@@ -54,50 +58,71 @@ def run_kwargs(work_dir):
5458

5559

5660
def test_spykingcircus(run_kwargs):
57-
sorting = ss.run_spykingcircus(output_folder="spykingcircus", **run_kwargs)
61+
if DOCKER_SINGULARITY == "singularity":
62+
clean_singularity_cache()
63+
sorting = ss.run_sorter("spykingcircus", output_folder="spykingcircus", **run_kwargs)
5864
print(sorting)
5965

6066

6167
def test_mountainsort4(run_kwargs):
62-
sorting = ss.run_mountainsort4(output_folder="mountainsort4", **run_kwargs)
68+
if DOCKER_SINGULARITY == "singularity":
69+
clean_singularity_cache()
70+
sorting = ss.run_sorter("mountainsort4", output_folder="mountainsort4", **run_kwargs)
6371
print(sorting)
6472

6573

6674
def test_tridesclous(run_kwargs):
67-
sorting = ss.run_tridesclous(output_folder="tridesclous", **run_kwargs)
68-
print(sorting)
69-
70-
71-
def test_klusta(run_kwargs):
72-
sorting = ss.run_klusta(output_folder="klusta", **run_kwargs)
75+
if DOCKER_SINGULARITY == "singularity":
76+
clean_singularity_cache()
77+
sorting = ss.run_sorter("tridesclous", output_folder="tridesclous", **run_kwargs)
7378
print(sorting)
7479

7580

7681
def test_ironclust(run_kwargs):
77-
sorting = ss.run_ironclust(output_folder="ironclust", fGpu=False, **run_kwargs)
82+
if DOCKER_SINGULARITY == "singularity":
83+
clean_singularity_cache()
84+
sorting = ss.run_sorter("ironclust", output_folder="ironclust", fGpu=False, **run_kwargs)
7885
print(sorting)
7986

8087

8188
def test_waveclus(run_kwargs):
82-
sorting = ss.run_waveclus(output_folder="waveclus", **run_kwargs)
89+
if DOCKER_SINGULARITY == "singularity":
90+
clean_singularity_cache()
91+
sorting = ss.run_sorter("waveclus", output_folder="waveclus", **run_kwargs)
8392
print(sorting)
8493

8594

8695
def test_hdsort(run_kwargs):
87-
sorting = ss.run_hdsort(output_folder="hdsort", **run_kwargs)
96+
if DOCKER_SINGULARITY == "singularity":
97+
clean_singularity_cache()
98+
sorting = ss.run_sorter("hdsort", output_folder="hdsort", **run_kwargs)
8899
print(sorting)
89100

90101

91102
def test_kilosort1(run_kwargs):
92-
sorting = ss.run_kilosort(output_folder="kilosort", useGPU=False, **run_kwargs)
103+
if DOCKER_SINGULARITY == "singularity":
104+
clean_singularity_cache()
105+
sorting = ss.run_sorter("kilosort", output_folder="kilosort", useGPU=False, **run_kwargs)
93106
print(sorting)
94107

95108
def test_combinato(run_kwargs):
109+
if DOCKER_SINGULARITY == "singularity":
110+
clean_singularity_cache()
96111
rec = run_kwargs['recording']
97112
channels = rec.get_channel_ids()[0:1]
98113
rec_one_channel = rec.channel_slice(channels)
99114
run_kwargs['recording'] = rec_one_channel
100-
sorting = ss.run_combinato(output_folder='combinato', **run_kwargs)
115+
sorting = ss.run_sorter("combinato", output_folder='combinato', **run_kwargs)
116+
print(sorting)
117+
118+
@pytest.mark.skip(reason="Legcay sorter: requires Python=3.7")
119+
def test_klusta(run_kwargs):
120+
if DOCKER_SINGULARITY == "singularity":
121+
clean_singularity_cache()
122+
recording = run_kwargs["recording"]
123+
recording.extra_requirements.append("pandas")
124+
run_kwargs["recording"] = recording
125+
sorting = ss.run_sorter("klusta", output_folder="klusta", **run_kwargs)
101126
print(sorting)
102127

103128
if __name__ == "__main__":

0 commit comments

Comments
 (0)