Recently Written · git

subplz-web

git clone https://github.com/equwal/subplz-web

Log | Files | Refs


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