Skip to content

Commit 43252bf

Browse files
added more tests for existing dir and existing file
1 parent 4208518 commit 43252bf

File tree

2 files changed

+19
-6
lines changed

2 files changed

+19
-6
lines changed

src/diffpy/labpdfproc/tests/test_tools.py

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,20 +6,34 @@
66
from diffpy.labpdfproc.tools import set_output_directory
77

88
params1 = [
9-
([None], [Path.cwd()]),
10-
(["corrected"], [Path("corrected").resolve()]),
9+
([None], [Path.cwd().resolve()]),
10+
(["."], [Path.cwd().resolve()]),
11+
(["new_dir"], [Path.cwd().resolve() / "new_dir"]),
12+
(["new_dir.py"], [Path.cwd().resolve() / "new_dir.py"]),
13+
(["existing_dir"], [Path.cwd().resolve() / "existing_dir"]),
1114
]
1215

1316

1417
@pytest.mark.parametrize("inputs, expected", params1)
1518
def test_set_output_directory(inputs, expected):
19+
existing_dir = Path().cwd().resolve() / "existing_dir"
20+
existing_dir.mkdir(parents=True, exist_ok=True)
21+
1622
expected_output_directory = expected[0]
1723
actual_args = argparse.Namespace(output_directory=inputs[0])
1824
actual_args.output_directory = set_output_directory(actual_args)
1925
assert actual_args.output_directory == expected_output_directory
2026
assert Path(actual_args.output_directory).exists()
2127
assert Path(actual_args.output_directory).is_dir()
2228

29+
30+
def test_set_output_directory_bad():
31+
existing_dir = Path().cwd().resolve() / "existing_dir.py"
32+
with open(existing_dir, "w"):
33+
pass
34+
35+
actual_args = argparse.Namespace(output_directory="existing_dir.py")
2336
with pytest.raises(FileExistsError):
24-
actual_args = argparse.Namespace(output_directory="test_tools.py")
2537
actual_args.output_directory = set_output_directory(actual_args)
38+
assert Path(actual_args.output_directory).exists()
39+
assert not Path(actual_args.output_directory).is_dir()

src/diffpy/labpdfproc/tools.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ def set_output_directory(args):
88
Parameters
99
----------
1010
args argparse.Namespace
11-
input arguments provided by the user
11+
the arguments from the parser
1212

1313
Returns
1414
-------
@@ -18,9 +18,8 @@ def set_output_directory(args):
1818
If user provides an output directory, use it.
1919
Otherwise, we set it to the current directory if nothing is provided.
2020
We then create the directory if it does not exist.
21-
If the provided directory is an existed file then we raise the FileExistsError.
2221

2322
"""
24-
output_dir = Path(args.output_directory).resolve() if args.output_directory else Path.cwd()
23+
output_dir = Path(args.output_directory).resolve() if args.output_directory else Path.cwd().resolve()
2524
output_dir.mkdir(parents=True, exist_ok=True)
2625
return output_dir

0 commit comments

Comments
 (0)