14
14
# See the License for the specific language governing permissions and
15
15
# limitations under the License.
16
16
17
+ # mypy: ignore-errors
18
+
17
19
from typing import Any
18
20
19
- import cads_processing_api_service . translators
21
+ from cads_processing_api_service import config , translators
20
22
21
23
TEST_INPUT_CDS_SCHEMAS : dict [str , Any ] = {
22
24
"string_list" : {
@@ -115,16 +117,12 @@ def test_extract_groups_labels() -> None:
115
117
"val2" : "Val2" ,
116
118
"val3" : "Val3" ,
117
119
}
118
- res_output = cads_processing_api_service .translators .extract_groups_labels (
119
- test_groups , test_values
120
- )
120
+ res_output = translators .extract_groups_labels (test_groups , test_values )
121
121
assert res_output == exp_output
122
122
123
123
test_groups = TEST_INPUT_CDS_SCHEMAS ["string_list_array" ]["details" ]["groups" ]
124
124
exp_output = {"val1" : "Val1" , "val2" : "Val2" , "val3" : "Val3" }
125
- res_output = cads_processing_api_service .translators .extract_groups_labels (
126
- test_groups
127
- )
125
+ res_output = translators .extract_groups_labels (test_groups )
128
126
assert res_output == exp_output
129
127
130
128
test_groups = TEST_INPUT_CDS_SCHEMAS ["string_list_array_groups" ]["details" ][
@@ -138,32 +136,24 @@ def test_extract_groups_labels() -> None:
138
136
"val5" : "Val5" ,
139
137
"val6" : "Val6" ,
140
138
}
141
- res_output = cads_processing_api_service .translators .extract_groups_labels (
142
- test_groups
143
- )
139
+ res_output = translators .extract_groups_labels (test_groups )
144
140
assert res_output == exp_output
145
141
146
142
147
143
def test_extract_labels () -> None :
148
144
test_inputs_cds_schema = TEST_INPUT_CDS_SCHEMAS ["string_list_array" ]
149
145
exp_output = {"val1" : "Val1" , "val2" : "Val2" , "val3" : "Val3" }
150
- res_output = cads_processing_api_service .translators .extract_labels (
151
- test_inputs_cds_schema
152
- )
146
+ res_output = translators .extract_labels (test_inputs_cds_schema )
153
147
assert res_output == exp_output
154
148
155
149
test_inputs_cds_schema = TEST_INPUT_CDS_SCHEMAS ["string_list" ]
156
150
exp_output = {"val1" : "Val1" , "val2" : "Val2" , "val3" : "Val3" }
157
- res_output = cads_processing_api_service .translators .extract_labels (
158
- test_inputs_cds_schema
159
- )
151
+ res_output = translators .extract_labels (test_inputs_cds_schema )
160
152
assert res_output == exp_output
161
153
162
154
test_inputs_cds_schema = TEST_INPUT_CDS_SCHEMAS ["free_edition_widget" ]
163
155
exp_output = {}
164
- res_output = cads_processing_api_service .translators .extract_labels (
165
- test_inputs_cds_schema
166
- )
156
+ res_output = translators .extract_labels (test_inputs_cds_schema )
167
157
assert res_output == exp_output
168
158
169
159
@@ -173,9 +163,7 @@ def test_translate_string_list() -> None:
173
163
"type" : "array" ,
174
164
"items" : {"type" : "string" , "enum" : ["val1" , "val2" , "val3" ]},
175
165
}
176
- res_output = cads_processing_api_service .translators .translate_string_list (
177
- test_input
178
- )
166
+ res_output = translators .translate_string_list (test_input )
179
167
assert res_output == exp_ouput
180
168
181
169
@@ -185,9 +173,7 @@ def test_translate_string_list_array() -> None:
185
173
"type" : "array" ,
186
174
"items" : {"type" : "string" , "enum" : ["val1" , "val2" , "val3" ]},
187
175
}
188
- res_output = cads_processing_api_service .translators .translate_string_list_array (
189
- test_input
190
- )
176
+ res_output = translators .translate_string_list_array (test_input )
191
177
assert res_output == exp_ouput
192
178
193
179
test_input = TEST_INPUT_CDS_SCHEMAS ["string_list_array_groups" ]
@@ -198,18 +184,14 @@ def test_translate_string_list_array() -> None:
198
184
"enum" : ["val1" , "val2" , "val3" , "val4" , "val5" , "val6" ],
199
185
},
200
186
}
201
- res_output = cads_processing_api_service .translators .translate_string_list_array (
202
- test_input
203
- )
187
+ res_output = translators .translate_string_list_array (test_input )
204
188
assert res_output == exp_ouput
205
189
206
190
207
191
def test_translate_string_choice () -> None :
208
192
test_input = TEST_INPUT_CDS_SCHEMAS ["string_choice" ]
209
193
exp_ouput = {"type" : "string" , "enum" : ["val1" , "val2" , "val3" ], "default" : "val1" }
210
- res_output = cads_processing_api_service .translators .translate_string_choice (
211
- test_input
212
- )
194
+ res_output = translators .translate_string_choice (test_input )
213
195
assert res_output == exp_ouput
214
196
215
197
@@ -222,43 +204,39 @@ def test_translate_geographic_extent_map() -> None:
222
204
"items" : {"type" : "number" },
223
205
"default" : [1 , 2 , 3 , 4 ],
224
206
}
225
- res_output = (
226
- cads_processing_api_service .translators .translate_geographic_extent_map (
227
- test_input
228
- )
229
- )
207
+ res_output = translators .translate_geographic_extent_map (test_input )
230
208
assert res_output == exp_ouput
231
209
232
210
233
211
def test_make_request_labels () -> None :
234
212
test_input_value_ids = ["1" , "1" , "1" , "1" ]
235
213
test_input_cds_schema = TEST_INPUT_CDS_SCHEMAS ["geographic_extent_map" ]
236
214
exp_output = ["North: 1°" , "West: 1°" , "South: 1°" , "East: 1°" ]
237
- res_output = cads_processing_api_service . translators .make_request_labels (
215
+ res_output = translators .make_request_labels (
238
216
test_input_value_ids , test_input_cds_schema
239
217
)
240
218
assert res_output == exp_output
241
219
242
220
test_input_value_ids = [{"latitude" : 10 , "longitude" : 10 }]
243
221
test_input_cds_schema = TEST_INPUT_CDS_SCHEMAS ["geographic_location" ]
244
222
exp_output = ["Latitude: 10°" , "Longitude: 10°" ]
245
- res_output = cads_processing_api_service . translators .make_request_labels (
223
+ res_output = translators .make_request_labels (
246
224
test_input_value_ids , test_input_cds_schema
247
225
)
248
226
assert res_output == exp_output
249
227
250
228
test_input_value_ids = ["val1" , "val2" ]
251
229
test_input_cds_schema = TEST_INPUT_CDS_SCHEMAS ["string_list" ]
252
230
exp_output = ["Val1" , "Val2" ]
253
- res_output = cads_processing_api_service . translators .make_request_labels (
231
+ res_output = translators .make_request_labels (
254
232
test_input_value_ids , test_input_cds_schema
255
233
)
256
234
assert res_output == exp_output
257
235
258
236
test_input_value_ids = ["val1" , "val4" ]
259
237
test_input_cds_schema = TEST_INPUT_CDS_SCHEMAS ["string_list" ]
260
238
exp_output = ["Val1" , "val4" ]
261
- res_output = cads_processing_api_service . translators .make_request_labels (
239
+ res_output = translators .make_request_labels (
262
240
test_input_value_ids , test_input_cds_schema
263
241
)
264
242
assert res_output == exp_output
@@ -268,11 +246,7 @@ def test_translate_request_ids_into_labels() -> None:
268
246
request = {"key1" : "val1" , "key2" : "val2" }
269
247
cds_schema = None
270
248
exp_output = {"key1" : "val1" , "key2" : "val2" }
271
- res_output = (
272
- cads_processing_api_service .translators .translate_request_ids_into_labels (
273
- request , cds_schema
274
- )
275
- )
249
+ res_output = translators .translate_request_ids_into_labels (request , cds_schema )
276
250
assert res_output == exp_output
277
251
278
252
request = {
@@ -289,11 +263,7 @@ def test_translate_request_ids_into_labels() -> None:
289
263
"String Choice" : ["Val1" ],
290
264
"unknown_key" : "unknown_value" ,
291
265
}
292
- res_output = (
293
- cads_processing_api_service .translators .translate_request_ids_into_labels (
294
- request , cds_schema
295
- )
296
- )
266
+ res_output = translators .translate_request_ids_into_labels (request , cds_schema )
297
267
assert res_output == exp_output
298
268
299
269
request = {}
@@ -309,52 +279,58 @@ def test_translate_request_ids_into_labels() -> None:
309
279
}
310
280
311
281
282
+ def test_format_list () -> None :
283
+ value_list = ["test_value_1" , "test_value_2" ]
284
+ max_items_per_line = 1
285
+ exp_output = "[\n 'test_value_1',\n 'test_value_2'\n ]"
286
+ res_output = translators .format_list (value_list , max_items_per_line )
287
+ assert res_output == exp_output
288
+
289
+ max_items_per_line = 2
290
+ exp_output = "['test_value_1', 'test_value_2']"
291
+ res_output = translators .format_list (value_list , max_items_per_line )
292
+ assert res_output == exp_output
293
+
294
+
312
295
def test_format_request_value () -> None :
313
- test_value_1 = "test_value"
314
- exp_output_1 = "'test_value'"
315
- res_output_1 = cads_processing_api_service .translators .format_request_value (
316
- test_value_1
317
- )
318
- assert res_output_1 == exp_output_1
296
+ test_value = "test_value"
297
+ exp_output = '"test_value"'
298
+ res_output = translators .format_request_value (test_value )
299
+ assert res_output == exp_output
319
300
320
- test_value_2 = ["test_value_1" , "test_value_2" ]
321
- exp_output_2 = "['test_value_1', 'test_value_2']"
322
- res_output_2 = cads_processing_api_service .translators .format_request_value (
323
- test_value_2
324
- )
325
- assert res_output_2 == exp_output_2
301
+ test_value = 1
302
+ exp_output = "1"
303
+ res_output = translators .format_request_value (test_value )
304
+ assert res_output == exp_output
305
+
306
+ test_value = ["test_value_1" , "test_value_2" ]
307
+ exp_output = "[\n 'test_value_1',\n 'test_value_2'\n ]"
308
+ res_output = translators .format_request_value (test_value )
309
+ assert res_output == exp_output
326
310
327
311
328
312
def test_format_api_request () -> None :
329
- test_api_request_template = (
330
- "import cads_api_client\n \n "
331
- "request = {api_request_kwargs}\n \n "
332
- "client = cads_api_client.ApiClient()\n "
333
- "client.retrieve(\n \t "
334
- "collection_id='{process_id}',\n \t "
335
- "**request\n "
336
- ")\n "
337
- )
313
+ test_api_request_template = config .API_REQUEST_TEMPLATE
338
314
test_process_id = "test_process_id"
339
315
test_request = {
340
316
"inputs" : {
341
- "variable" : "test_variable_1" ,
342
- "year" : ["2000" , "2001" ],
317
+ "variable_1" : "value_1" ,
318
+ "variable_2" : ["value_1" , "value_2" ],
319
+ "variable_3" : 1 ,
343
320
}
344
321
}
345
322
exp_output = (
346
- "import cads_api_client\n \n "
323
+ "import cdsapi\n \n "
324
+ 'dataset = "test_process_id"\n '
347
325
"request = {\n "
348
- " 'variable': 'test_variable_1',\n "
349
- " 'year': ['2000', '2001']\n "
326
+ ' "variable_1": "value_1",\n '
327
+ ' "variable_2": [\n "value_1",\n "value_2"\n ],\n '
328
+ ' "variable_3": 1\n '
350
329
"}\n \n "
351
- "client = cads_api_client.ApiClient()\n "
352
- "client.retrieve(\n \t "
353
- "collection_id='test_process_id',\n \t "
354
- "**request\n "
355
- ")\n "
330
+ "client = cdsapi.Client()\n "
331
+ "client.retrieve(dataset, request).download()\n "
356
332
)
357
- res_output = cads_processing_api_service . translators .format_api_request (
333
+ res_output = translators .format_api_request (
358
334
test_api_request_template , test_process_id , test_request
359
335
)
360
336
assert res_output == exp_output
0 commit comments