"""Тесты проверки состояния прогресса, которое клиент сохраняет на сервере.""" import json import unittest from splitapi.statevalid import StateError, clean_state GOOD = { "progress": {"ru-A1": {"best": 120.5, "acc": 97.2, "stars": 2, "tries": 3}}, "history": [{"t": 1760000000000, "id": "ru-A1", "k": "lesson", "lang": "ru", "cpm": 120.5, "acc": 97.2, "err": 2, "len": 60, "sec": 30.1}], "keys": {"ru": {"ф": {"n": 10, "err": 1, "ms": 2500, "ln": 9}}, "en": {}}, } class CleanStateTests(unittest.TestCase): def test_valid_state_roundtrips(self): self.assertEqual(clean_state(GOOD), GOOD) def test_empty_state_is_ok(self): self.assertEqual(clean_state({}), {"progress": {}, "history": [], "keys": {"ru": {}, "en": {}}}) def test_unknown_top_level_fields_are_dropped(self): out = clean_state({**GOOD, "settings": {"x": 1}, "evil": "