/
Mihaham
/
Table-Time
Обзор
Документация
Войти
/
Mihaham
/
Table-Time
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
services/api/tests/test_plugins_extra.py
55 строк
2 KB
MihahamYT
feat: games catalog, 90%+ test coverage, MkDocs ready for GitVerse
14 июн 2026, 10:45
14 июн 2026, 10:45
03c79f9
Код
Авторство
О чём код?
from app.plugins.dice_board.plugin import DiceBoardPlugin from app.plugins.kontakt.plugin import KontaktPlugin from app.plugins.shlyapa.plugin import ShlyapaPlugin def test_dice_board_unknown_action(): p = DiceBoardPlugin() s = p.initial_state(["p1", "p2"], {"p1": "A", "p2": "B"}, {}) v = p.validate_action(s, "pass", {}, "p1") assert not v.ok assert v.error_code == "UNKNOWN_ACTION" def test_kontakt_validation_paths(): p = KontaktPlugin() s = p.initial_state(["p1", "p2"], {"p1": "A", "p2": "B"}, {}) assert not p.validate_action(s, "bad", {}, "p1").ok assert p.validate_action(s, "set_association", {"association": "x"}, "p1").ok s["phase"] = "Contacting" assert not p.validate_action(s, "contact", {"word": ""}, "p2").ok assert not p.validate_action(s, "set_association", {"association": "x"}, "p2").error_code == "NOT_YOUR_TURN" s2 = p.apply_action(s, "contact", {"word": "wrong"}, "p2") assert s2["winner_id"] is None s3 = p.apply_action(s, "reveal", {}, "p1") assert s3["phase"] == "Association" def test_shlyapa_full_round(): p = ShlyapaPlugin() s = p.initial_state(["p1", "p2"], {"p1": "E", "p2": "G"}, {}) s["word"] = "testword" s = p.apply_action(s, "start_guessing", {}, "p1") assert s["phase"] == "Guessing" s = p.apply_action(s, "guess", {"word": "wrong"}, "p2") assert s["phase"] == "Guessing" s = p.apply_action(s, "skip_word", {}, "p1") assert s["explainer_id"] == "p2" def test_shlyapa_game_finished(): p = ShlyapaPlugin() s = p.initial_state(["p1", "p2"], {"p1": "E", "p2": "G"}, {}) s["winner_id"] = "p2" v = p.validate_action(s, "guess", {"word": "x"}, "p2") assert v.error_code == "GAME_FINISHED" def test_plugins_render_telegram(): for cls in (DiceBoardPlugin, KontaktPlugin, ShlyapaPlugin): p = cls() s = p.initial_state(["p1", "p2"], {"p1": "A", "p2": "B"}, {}) tg = p.render_telegram(s, {"p1": "A", "p2": "B"}) assert tg.caption web = p.render_web(s, {"p1": "A", "p2": "B"}) assert web.phase