tests/test_languages.py (1286 bytes)
1 """The languages SubRead is checked against must reach the server backend. 2 3 The registry decides which sentence splitter subplz gets. A language that is 4 missing from it is refused before a run starts, so the five checked languages 5 must be present, and Portuguese must ask for stanza: pysbd does not know it 6 and raises ValueError on it. 7 """ 8 9 import pytest 10 11 from backend import languages 12 13 CHECKED = ["en", "pt", "es", "ru", "ja"] 14 15 16 @pytest.mark.parametrize("code", CHECKED) 17 def test_checked_language_is_supported(code): 18 lang = languages.require(code) 19 assert lang.code == code 20 assert lang.splitter in ("pysbd", "stanza") 21 22 23 def test_portuguese_needs_stanza(): 24 assert languages.get("pt").needs_nlp_flag is True 25 26 27 @pytest.mark.parametrize("code", ["en", "es", "ru", "ja"]) 28 def test_pysbd_languages_do_not_need_a_model_download(code): 29 assert languages.get(code).needs_nlp_flag is False 30 31 32 def test_lookup_ignores_case_and_spacing(): 33 assert languages.get(" PT ").code == "pt" 34 assert languages.get("xx") is None 35 with pytest.raises(languages.UnsupportedLanguage): 36 languages.require("xx") 37 38 39 def test_the_registry_is_offered_to_the_browser(client): 40 codes = {entry["code"] for entry in client.get("/api/languages").json()} 41 assert set(CHECKED) <= codes