Skip to content

Commit 67844f4

Browse files
committed
Add more tests for i18n new API
1 parent 81c6617 commit 67844f4

File tree

1 file changed

+102
-0
lines changed

1 file changed

+102
-0
lines changed

Diff for: tests/i18n/test_i18n.py

+102
Original file line numberDiff line numberDiff line change
@@ -272,3 +272,105 @@ def test_lang_details_inequality(query_left: str, query_right: str):
272272

273273
def test_lang_details_inequality_objects():
274274
assert get_language("ara") != "ara"
275+
276+
277+
@pytest.mark.parametrize(
278+
"query,expected",
279+
[
280+
(
281+
"fra",
282+
{
283+
"english": "French (France)",
284+
"iso-639-1": "fr",
285+
"iso-639-2b": "fre",
286+
"iso-639-2t": "fra",
287+
"iso-639-3": "fra",
288+
"iso-639-5": None,
289+
"iso-types": [
290+
"part2t",
291+
"part3",
292+
],
293+
"native": "français (France)",
294+
"query": "fra",
295+
"querytype": "purecode",
296+
},
297+
),
298+
(
299+
"zh",
300+
{
301+
"english": "Chinese",
302+
"iso-639-1": "zh",
303+
"iso-639-2b": "chi",
304+
"iso-639-2t": "zho",
305+
"iso-639-3": "zho",
306+
"iso-639-5": None,
307+
"iso-types": [
308+
"part1",
309+
],
310+
"native": "中文",
311+
"query": "zh",
312+
"querytype": "purecode",
313+
},
314+
),
315+
(
316+
"ar",
317+
{
318+
"english": "Arabic",
319+
"iso-639-1": "ar",
320+
"iso-639-2b": "ara",
321+
"iso-639-2t": "ara",
322+
"iso-639-3": "ara",
323+
"iso-639-5": None,
324+
"iso-types": [
325+
"part1",
326+
],
327+
"native": "العربية",
328+
"query": "ar",
329+
"querytype": "purecode",
330+
},
331+
),
332+
],
333+
)
334+
def test_lang_to_dict(query: str, expected: dict[str, str | None | list[str]]):
335+
assert Language(query).todict() == expected
336+
337+
338+
@pytest.mark.parametrize(
339+
"query,expected",
340+
[
341+
(
342+
"fra",
343+
'Language(iso_639_1="fr", iso_639_2b="fre", iso_639_2t="fra", '
344+
'iso_639_3="fra", iso_639_5="None", english="French (France)", '
345+
"iso_types=\"['part2t', 'part3']\", native=\"français (France)\", "
346+
'querytype="purecode", query="fra")',
347+
),
348+
(
349+
"zh",
350+
'Language(iso_639_1="zh", iso_639_2b="chi", iso_639_2t="zho", '
351+
'iso_639_3="zho", iso_639_5="None", english="Chinese", '
352+
'iso_types="[\'part1\']", native="中文", querytype="purecode", query="zh")',
353+
),
354+
(
355+
"ar",
356+
'Language(iso_639_1="ar", iso_639_2b="ara", iso_639_2t="ara", '
357+
'iso_639_3="ara", iso_639_5="None", english="Arabic", '
358+
'iso_types="[\'part1\']", native="العربية", querytype="purecode", '
359+
'query="ar")',
360+
),
361+
],
362+
)
363+
def test_lang_repr(query: str, expected: str):
364+
assert Language(query).__repr__() == expected
365+
366+
367+
@pytest.mark.parametrize(
368+
"query,expected",
369+
[
370+
("fra", "fra: French (France)"),
371+
("zh", "zho: Chinese"),
372+
("ar", "ara: Arabic"),
373+
],
374+
)
375+
def test_lang_str(query: str, expected: str):
376+
assert f"{Language(query)}" == expected

0 commit comments

Comments
 (0)