@@ -188,7 +188,9 @@ def test_glossary_no_subcommand(runner):
188
188
assert "subcommand is required" in result .output
189
189
190
190
191
- def test_glossary_create (runner , glossary_name , tmpdir ):
191
+ def test_glossary_create (
192
+ runner , glossary_name , tmpdir , cleanup_matching_glossaries
193
+ ):
192
194
name_cli = f"{ glossary_name } -cli"
193
195
name_stdin = f"{ glossary_name } -stdin"
194
196
name_file = f"{ glossary_name } -file"
@@ -198,85 +200,120 @@ def test_glossary_create(runner, glossary_name, tmpdir):
198
200
file = tmpdir / "glossary_entries"
199
201
file .write (entries_tsv )
200
202
201
- result = runner .invoke (
202
- deepl .__main__ ,
203
- f'-vv glossary create --name "{ name_cli } " --from DE --to EN '
204
- f"{ entries_cli } " ,
205
- )
206
- assert result .exit_code == 0 , f"exit: { result .exit_code } \n { result .output } "
207
- result = runner .invoke (
208
- deepl .__main__ ,
209
- f'-vv glossary create --name "{ name_stdin } " --from DE --to EN -' ,
210
- input = entries_tsv ,
211
- )
212
- assert result .exit_code == 0 , f"exit: { result .exit_code } \n { result .output } "
213
- result = runner .invoke (
214
- deepl .__main__ ,
215
- f'-vv glossary create --name "{ name_file } " --from DE --to EN '
216
- f"--file { file } " ,
217
- )
218
- assert result .exit_code == 0 , f"exit: { result .exit_code } \n { result .output } "
219
-
220
- result = runner .invoke (deepl .__main__ , f"-vv glossary list" )
221
- assert result .exit_code == 0 , f"exit: { result .exit_code } \n { result .output } "
222
- assert name_cli in result .output
223
- assert name_stdin in result .output
224
- assert name_file in result .output
225
-
226
- # Cannot use --file option together with entries
227
- result = runner .invoke (
228
- deepl .__main__ ,
229
- f'-vv glossary create --name "{ name_file } " --from DE --to EN '
230
- f"--file { file } { entries_cli } " ,
231
- )
232
- assert result .exit_code == 1 , f"exit: { result .exit_code } \n { result .output } "
233
- assert "--file argument" in result .output
234
-
235
-
236
- def test_glossary_get (translator , runner , glossary_name ):
237
- created_id = create_glossary (translator , glossary_name ).glossary_id
238
-
239
- result = runner .invoke (deepl .__main__ , f"-vv glossary get { created_id } " )
240
- print (result .output )
241
- assert result .exit_code == 0 , f"exit: { result .exit_code } \n { result .output } "
242
- assert glossary_name in result .output
243
-
244
-
245
- def test_glossary_list (translator , runner , glossary_name ):
246
- suffix_list = ["1" , "2" , "3" ]
247
- for suffix in suffix_list :
248
- create_glossary (translator , glossary_name + suffix )
249
-
250
- result = runner .invoke (deepl .__main__ , f"-vv glossary list" )
251
- assert result .exit_code == 0 , f"exit: { result .exit_code } \n { result .output } "
252
- for suffix in suffix_list :
253
- assert f"{ glossary_name } { suffix } " in result .output
254
-
255
-
256
- def test_glossary_entries (translator , runner , glossary_name ):
203
+ try :
204
+ result = runner .invoke (
205
+ deepl .__main__ ,
206
+ f'-vv glossary create --name "{ name_cli } " --from DE --to EN '
207
+ f"{ entries_cli } " ,
208
+ )
209
+ assert (
210
+ result .exit_code == 0
211
+ ), f"exit: { result .exit_code } \n { result .output } "
212
+ result = runner .invoke (
213
+ deepl .__main__ ,
214
+ f'-vv glossary create --name "{ name_stdin } " --from DE --to EN -' ,
215
+ input = entries_tsv ,
216
+ )
217
+ assert (
218
+ result .exit_code == 0
219
+ ), f"exit: { result .exit_code } \n { result .output } "
220
+ result = runner .invoke (
221
+ deepl .__main__ ,
222
+ f'-vv glossary create --name "{ name_file } " --from DE --to EN '
223
+ f"--file { file } " ,
224
+ )
225
+ assert (
226
+ result .exit_code == 0
227
+ ), f"exit: { result .exit_code } \n { result .output } "
228
+
229
+ result = runner .invoke (deepl .__main__ , f"-vv glossary list" )
230
+ assert (
231
+ result .exit_code == 0
232
+ ), f"exit: { result .exit_code } \n { result .output } "
233
+ assert name_cli in result .output
234
+ assert name_stdin in result .output
235
+ assert name_file in result .output
236
+
237
+ # Cannot use --file option together with entries
238
+ result = runner .invoke (
239
+ deepl .__main__ ,
240
+ f'-vv glossary create --name "{ name_file } " --from DE --to EN '
241
+ f"--file { file } { entries_cli } " ,
242
+ )
243
+ assert (
244
+ result .exit_code == 1
245
+ ), f"exit: { result .exit_code } \n { result .output } "
246
+ assert "--file argument" in result .output
247
+
248
+ finally :
249
+ cleanup_matching_glossaries (
250
+ lambda glossary : glossary .name in [name_file , name_cli , name_stdin ]
251
+ )
252
+
253
+
254
+ def test_glossary_get (translator , runner , glossary_manager ):
255
+ with glossary_manager () as created_glossary :
256
+ created_id = created_glossary .glossary_id
257
+
258
+ result = runner .invoke (
259
+ deepl .__main__ , f"-vv glossary get { created_id } "
260
+ )
261
+ print (result .output )
262
+ assert (
263
+ result .exit_code == 0
264
+ ), f"exit: { result .exit_code } \n { result .output } "
265
+ assert created_id in result .output
266
+ assert created_glossary .name in result .output
267
+
268
+
269
+ def test_glossary_list (translator , runner , glossary_manager ):
270
+ with glossary_manager (glossary_name_suffix = "1" ) as g1 , glossary_manager (
271
+ glossary_name_suffix = "2"
272
+ ) as g2 , glossary_manager (glossary_name_suffix = "3" ) as g3 :
273
+ glossary_list = [g1 , g2 , g3 ]
274
+
275
+ result = runner .invoke (deepl .__main__ , f"-vv glossary list" )
276
+ assert (
277
+ result .exit_code == 0
278
+ ), f"exit: { result .exit_code } \n { result .output } "
279
+ for glossary in glossary_list :
280
+ assert glossary .name in result .output
281
+
282
+
283
+ def test_glossary_entries (translator , runner , glossary_manager ):
257
284
entries = {"Hallo" : "Hello" , "Maler" : "Artist" }
258
- created_id = create_glossary (
259
- translator , glossary_name , entries = entries
260
- ).glossary_id
261
-
262
- result = runner .invoke (
263
- deepl .__main__ , f"-vv glossary entries { created_id } "
264
- )
265
- assert result .exit_code == 0 , f"exit: { result .exit_code } \n { result .output } "
266
- for source , target in entries .items ():
267
- assert f"{ source } \t { target } " in result .output
268
-
269
-
270
- def test_glossary_delete (translator , runner , glossary_name ):
271
- created_id = create_glossary (translator , glossary_name ).glossary_id
272
- result = runner .invoke (deepl .__main__ , f"glossary list" )
273
- assert result .exit_code == 0 , f"exit: { result .exit_code } \n { result .output } "
274
- assert created_id in result .output
275
-
276
- # Remove the created glossary
277
- result = runner .invoke (deepl .__main__ , f'glossary delete "{ created_id } "' )
278
- assert result .exit_code == 0 , f"exit: { result .exit_code } \n { result .output } "
279
-
280
- result = runner .invoke (deepl .__main__ , f"glossary list" )
281
- assert result .exit_code == 0 , f"exit: { result .exit_code } \n { result .output } "
282
- assert created_id not in result .output
285
+ with glossary_manager (entries = entries ) as created_glossary :
286
+ created_id = created_glossary .glossary_id
287
+
288
+ result = runner .invoke (
289
+ deepl .__main__ , f"-vv glossary entries { created_id } "
290
+ )
291
+ assert (
292
+ result .exit_code == 0
293
+ ), f"exit: { result .exit_code } \n { result .output } "
294
+ for source , target in entries .items ():
295
+ assert f"{ source } \t { target } " in result .output
296
+
297
+
298
+ def test_glossary_delete (translator , runner , glossary_manager ):
299
+ with glossary_manager () as created_glossary :
300
+ created_id = created_glossary .glossary_id
301
+ result = runner .invoke (deepl .__main__ , f"glossary list" )
302
+ assert (
303
+ result .exit_code == 0
304
+ ), f"exit: { result .exit_code } \n { result .output } "
305
+ assert created_id in result .output
306
+
307
+ # Remove the created glossary
308
+ result = runner .invoke (
309
+ deepl .__main__ , f'glossary delete "{ created_id } "'
310
+ )
311
+ assert (
312
+ result .exit_code == 0
313
+ ), f"exit: { result .exit_code } \n { result .output } "
314
+
315
+ result = runner .invoke (deepl .__main__ , f"glossary list" )
316
+ assert (
317
+ result .exit_code == 0
318
+ ), f"exit: { result .exit_code } \n { result .output } "
319
+ assert created_id not in result .output
0 commit comments