Skip to content

Commit f0d55e9

Browse files
committed
test for wfl.calculator.utils.clean_rundir
1 parent 37499b2 commit f0d55e9

File tree

2 files changed

+65
-2
lines changed

2 files changed

+65
-2
lines changed

tests/test_clean_dir.py

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
from wfl.calculators.utils import clean_rundir
2+
3+
# def clean_rundir(rundir, keep_files, default_keep_files, calculation_succeeded):
4+
5+
all_files = ["a", "aa", "b", "c", "d"]
6+
default_keep_files = ["a*", "b"]
7+
actual_default_keep_files = ["a", "aa", "b"]
8+
9+
def create_files(dir):
10+
for filename in all_files:
11+
with open(dir / filename, "w") as fout:
12+
fout.write("content\n")
13+
14+
def check_dir(dir, files):
15+
if files is None:
16+
# even path doesn't exist
17+
assert not dir.is_dir()
18+
return
19+
20+
files = set(files)
21+
22+
# all expected files are present
23+
for file in files:
24+
assert (dir / file).is_file()
25+
# all present files are expected
26+
for file in dir.iterdir():
27+
assert file.name in files
28+
29+
def test_clean_rundir(tmp_path):
30+
# keep True
31+
# keep all files regardless of success
32+
for succ, files in [(True, all_files), (False, all_files)]:
33+
p = tmp_path / f"True_{succ}"
34+
p.mkdir()
35+
create_files(p)
36+
clean_rundir(p, True, default_keep_files, calculation_succeeded=succ)
37+
check_dir(p, files)
38+
39+
# keep False
40+
# succeeded means keep nothing, failed means keep default
41+
for succ, files in [(True, None), (False, actual_default_keep_files)]:
42+
p = tmp_path / f"False_{succ}"
43+
p.mkdir()
44+
create_files(p)
45+
clean_rundir(p, False, default_keep_files, calculation_succeeded=succ)
46+
check_dir(p, files)
47+
48+
# keep subset of default
49+
# succeeded means keep subset, failed means keep default
50+
for succ, files in [(True, ["a"]), (False, actual_default_keep_files)]:
51+
p = tmp_path / f"a_{succ}"
52+
p.mkdir()
53+
create_files(p)
54+
clean_rundir(p, ["a"], default_keep_files, calculation_succeeded=succ)
55+
check_dir(p, files)
56+
57+
# keep different set from default
58+
# succeeded means keep set, failed means keep union of default and set
59+
for succ, files in [(True, ["a", "c"]), (False, actual_default_keep_files + ["a", "c"])]:
60+
p = tmp_path / f"ac_{succ}"
61+
p.mkdir()
62+
create_files(p)
63+
clean_rundir(p, ["a", "c"], default_keep_files, calculation_succeeded=succ)
64+
check_dir(p, files)

wfl/calculators/utils.py

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ def clean_rundir(rundir, keep_files, default_keep_files, calculation_succeeded):
3232
keep_files = default_keep_files
3333
elif keep_files is not True:
3434
keep_files = set(default_keep_files) | set(keep_files)
35-
else:
36-
raise ValueError(f"Unknown type or value for keep_files '{keep_files}'")
35+
# else True
3736

3837
clean_dir(rundir, keep_files, force=False)

0 commit comments

Comments
 (0)