@@ -188,7 +188,9 @@ def test_glossary_no_subcommand(runner):
188188 assert "subcommand is required" in result .output
189189
190190
191- def test_glossary_create (runner , glossary_name , tmpdir ):
191+ def test_glossary_create (
192+ runner , glossary_name , tmpdir , cleanup_matching_glossaries
193+ ):
192194 name_cli = f"{ glossary_name } -cli"
193195 name_stdin = f"{ glossary_name } -stdin"
194196 name_file = f"{ glossary_name } -file"
@@ -198,85 +200,120 @@ def test_glossary_create(runner, glossary_name, tmpdir):
198200 file = tmpdir / "glossary_entries"
199201 file .write (entries_tsv )
200202
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 ):
257284 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