from app import translation as tr def manifest(): return {"files": {"game.json": {"hash": "x", "size": 1}}} def test_source_language_name_and_translations(monkeypatch): game = {"sourceLang": "en", "locales": {"ru": {"name": "Русский", "progress": 0.5}, "de": {"progress": 1}}} monkeypatch.setattr(tr, "file_json", lambda m, path: game) result = tr.version_languages(manifest()) assert result["source_lang"] == "en" assert result["source_name"] == tr.LANG_NAMES["en"] assert [(lang["code"], lang["progress"]) for lang in result["languages"]] == [("de", 1), ("ru", 0.5)] def test_unknown_or_missing_source_language_has_no_name(monkeypatch): monkeypatch.setattr(tr, "file_json", lambda m, path: {"sourceLang": "und"}) assert tr.version_languages(manifest())["source_name"] is None assert tr.version_languages(None) == {"source_lang": None, "source_name": None, "languages": []}