13
13
)
14
14
from diffpy .utils .parsers .loaddata import loadData
15
15
16
- params1 = [
16
+ # Use cases can be found here: https://github.com/diffpy/diffpy.labpdfproc/issues/48
17
+ params_input = [
18
+ (["good_data.chi" ], ["." , "good_data.chi" ]),
19
+ (["input_dir/good_data.chi" ], ["input_dir" , "good_data.chi" ]),
20
+ (["./input_dir/good_data.chi" ], ["input_dir" , "good_data.chi" ]),
17
21
(
18
- ["--input-file" , " ." ],
22
+ ["." ],
19
23
[
20
24
"." ,
21
25
["good_data.chi" , "good_data.xy" , "good_data.txt" , "unreadable_file.txt" , "binary.pkl" ],
22
26
],
23
27
),
24
- (["--input-file" , "good_data.chi" ], ["." , "good_data.chi" ]),
25
- (["--input-file" , "input_dir/unreadable_file.txt" ], ["input_dir" , "unreadable_file.txt" ]),
26
- # ([Path.cwd()], [Path.cwd()]),
28
+ (
29
+ ["./input_dir" ],
30
+ [
31
+ "input_dir" ,
32
+ ["good_data.chi" , "good_data.xy" , "good_data.txt" , "unreadable_file.txt" , "binary.pkl" ],
33
+ ],
34
+ ),
35
+ (
36
+ ["input_dir" ],
37
+ [
38
+ "input_dir" ,
39
+ ["good_data.chi" , "good_data.xy" , "good_data.txt" , "unreadable_file.txt" , "binary.pkl" ],
40
+ ],
41
+ ),
27
42
]
28
43
29
44
30
- @pytest .mark .parametrize ("inputs, expected" , params1 )
45
+ @pytest .mark .parametrize ("inputs, expected" , params_input )
31
46
def test_set_input_files (inputs , expected , user_filesystem ):
32
47
expected_input_directory = Path (user_filesystem ) / expected [0 ]
33
48
expected_input_files = expected [1 ]
@@ -39,6 +54,21 @@ def test_set_input_files(inputs, expected, user_filesystem):
39
54
assert set (actual_args .input_file ) == set (expected_input_files )
40
55
41
56
57
+ params_input_bad = [
58
+ (["new_file.xy" ]),
59
+ (["./input_dir/new_file.xy" ]),
60
+ (["./new_dir" ]),
61
+ ]
62
+
63
+
64
+ @pytest .mark .parametrize ("inputs" , params_input_bad )
65
+ def test_set_input_files_bad (inputs , user_filesystem ):
66
+ cli_inputs = ["2.5" ] + inputs
67
+ actual_args = get_args (cli_inputs )
68
+ with pytest .raises (ValueError ):
69
+ actual_args = set_input_files (actual_args )
70
+
71
+
42
72
def test_loadData_with_input_files (user_filesystem ):
43
73
xarray_chi , yarray_chi = loadData ("good_data.chi" , unpack = True )
44
74
xarray_xy , yarray_xy = loadData ("good_data.xy" , unpack = True )
@@ -60,7 +90,7 @@ def test_loadData_with_input_files(user_filesystem):
60
90
@pytest .mark .parametrize ("inputs, expected" , params1 )
61
91
def test_set_output_directory (inputs , expected , user_filesystem ):
62
92
expected_output_directory = Path (user_filesystem ) / expected [0 ]
63
- cli_inputs = ["2.5" ] + inputs
93
+ cli_inputs = ["2.5" , "data.xy" ] + inputs
64
94
actual_args = get_args (cli_inputs )
65
95
actual_args .output_directory = set_output_directory (actual_args )
66
96
assert actual_args .output_directory == expected_output_directory
@@ -69,7 +99,7 @@ def test_set_output_directory(inputs, expected, user_filesystem):
69
99
70
100
71
101
def test_set_output_directory_bad (user_filesystem ):
72
- cli_inputs = ["2.5" , "--output-directory" , "good_data.chi" ]
102
+ cli_inputs = ["2.5" , "data.xy" , " --output-directory" , "good_data.chi" ]
73
103
actual_args = get_args (cli_inputs )
74
104
with pytest .raises (FileExistsError ):
75
105
actual_args .output_directory = set_output_directory (actual_args )
@@ -88,7 +118,7 @@ def test_set_output_directory_bad(user_filesystem):
88
118
@pytest .mark .parametrize ("inputs, expected" , params2 )
89
119
def test_set_wavelength (inputs , expected ):
90
120
expected_wavelength = expected [0 ]
91
- cli_inputs = ["2.5" ] + inputs
121
+ cli_inputs = ["2.5" , "data.xy" ] + inputs
92
122
actual_args = get_args (cli_inputs )
93
123
actual_args .wavelength = set_wavelength (actual_args )
94
124
assert actual_args .wavelength == expected_wavelength
@@ -112,7 +142,7 @@ def test_set_wavelength(inputs, expected):
112
142
113
143
@pytest .mark .parametrize ("inputs, msg" , params3 )
114
144
def test_set_wavelength_bad (inputs , msg ):
115
- cli_inputs = ["2.5" ] + inputs
145
+ cli_inputs = ["2.5" , "data.xy" ] + inputs
116
146
actual_args = get_args (cli_inputs )
117
147
with pytest .raises (ValueError , match = re .escape (msg [0 ])):
118
148
actual_args .wavelength = set_wavelength (actual_args )
@@ -130,12 +160,12 @@ def test_set_wavelength_bad(inputs, msg):
130
160
131
161
@pytest .mark .parametrize ("inputs, expected" , params5 )
132
162
def test_load_user_metadata (inputs , expected ):
133
- expected_args = get_args (["2.5" ])
163
+ expected_args = get_args (["2.5" , "data.xy" ])
134
164
for expected_pair in expected :
135
165
setattr (expected_args , expected_pair [0 ], expected_pair [1 ])
136
166
delattr (expected_args , "user_metadata" )
137
167
138
- cli_inputs = ["2.5" ] + inputs
168
+ cli_inputs = ["2.5" , "data.xy" ] + inputs
139
169
actual_args = get_args (cli_inputs )
140
170
actual_args = load_user_metadata (actual_args )
141
171
assert actual_args == expected_args
@@ -172,7 +202,7 @@ def test_load_user_metadata(inputs, expected):
172
202
173
203
@pytest .mark .parametrize ("inputs, msg" , params6 )
174
204
def test_load_user_metadata_bad (inputs , msg ):
175
- cli_inputs = ["2.5" ] + inputs
205
+ cli_inputs = ["2.5" , "data.xy" ] + inputs
176
206
actual_args = get_args (cli_inputs )
177
207
with pytest .raises (ValueError , match = msg [0 ]):
178
208
actual_args = load_user_metadata (actual_args )
0 commit comments