Статистика: любимая фракция — только по сознательному выбору игрока

Партии, где фракция выпала рандомом (was_random), в счётчик любимой
не идут: рандомная раздача о предпочтениях не говорит. Если игрок ни
разу не выбирал фракцию сам — любимой нет вовсе. Лучшая/худшая фракции
и остальная статистика считаются по всем партиям, как раньше.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
2026-07-18 17:16:28 +03:00
co-authored by Claude Fable 5
parent b349891bdb
commit e7323cc3c4
3 changed files with 79 additions and 5 deletions
+9 -2
View File
@@ -140,8 +140,15 @@ def finish_match(
def create_finished_match(
client: TestClient, group_id: int, players: list[dict], win_reason: str = "objectives"
) -> dict:
"""players: [{user_id, faction_id, place, comment?}] → завершённая партия (для статистики)."""
roster = [{"user_id": p["user_id"], "faction_id": p["faction_id"]} for p in players]
"""players: [{user_id, faction_id, place, comment?, was_random?}] → завершённая партия."""
roster = [
{
"user_id": p["user_id"],
"faction_id": p["faction_id"],
"was_random": p.get("was_random", False),
}
for p in players
]
started = start_match(client, group_id, roster)
assert started.status_code == 200, started.text
results = [