all repos — rastro @ 303f75c7f98bcf857e2ef49ec4c4489ce9eb333b

BitTorrent tracker!

tests/unit/test_i18n.py (view raw)

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
from __future__ import annotations

from app.i18n import (
    encode_bootstrap_note,
    from_accept_language,
    render_bootstrap_note,
    resolve_lang,
    translate,
)


class _Req:
    def __init__(self, *, cookie: str | None = None, accept: str | None = None):
        self.cookies = {"lang": cookie} if cookie else {}
        self.headers = {"accept-language": accept} if accept else {}


def test_cookie_wins_over_accept_language():
    req = _Req(cookie="pt", accept="en-US,en;q=0.9")
    assert resolve_lang(req) == "pt"


def test_accept_language_en_without_cookie():
    req = _Req(accept="en-US,en;q=0.8")
    assert resolve_lang(req) == "en"


def test_default_is_pt():
    assert resolve_lang(_Req()) == "pt"
    assert from_accept_language(None) == "pt"


def test_bootstrap_note_follows_lang():
    raw = encode_bootstrap_note("empty_import", "boom")
    pt = render_bootstrap_note("pt", raw)
    en = render_bootstrap_note("en", raw)
    assert "Inventário vazio" in pt
    assert "boom" in pt
    assert "Empty inventory" in en
    assert "boom" in en


def test_legacy_bootstrap_note_passthrough():
    old = "Inventário vazio: alguma coisa"
    assert render_bootstrap_note("en", old) == old


def test_translate_fallback():
    assert translate("en", "not_found") == "Tracker not found"
    assert translate("pt", "not_found") == "Tracker não encontrado"