fix(tests): изолировать тесты от instance_settings в общей dev-БД
Тесты читали ту же instance_settings, что и dev-стенд: выключение chat/hand_queue в админке роняло пачку тестов, не связанных с самим переключением (наступила сессия 0.0.28). Фикстура clean_instance_settings (явная, не autouse — DELETE в savepoint держит блокировку строки до конца внешней транзакции теста, автовключение на тестах с отдельными подключениями к БД дало саморазблокировку) удаляет управляемые ключи перед тестом, чтение конфигурации падает на дефолты pydantic-моделей. Подключена в test_chat_ws.py и test_hand_queue_ws.py. MANAGED_KEYS в services/instance_settings.py — единый список управляемых ключей вместо локальной копии в тестовом файле.
This commit is contained in:
@@ -69,6 +69,26 @@ BOOTSTRAP_MANAGED_KEYS: tuple[str, ...] = (
|
||||
`scripts/apply_preset_settings.py`, чтобы не дублировать список строковых
|
||||
имён ключей `instance_settings`."""
|
||||
|
||||
MANAGED_KEYS: tuple[str, ...] = (
|
||||
_KEY_TRANSCRIBER,
|
||||
_KEY_SUMMARIZER,
|
||||
_KEY_CHAT,
|
||||
_KEY_HAND_QUEUE,
|
||||
_KEY_AI_LEVEL,
|
||||
_KEY_SUMMARY_RECIPIENTS,
|
||||
_KEY_DISPLAY_TIMEZONE,
|
||||
_KEY_REGISTRATION_TEAM_CHOICE,
|
||||
_KEY_REGISTRATION_EMAIL_DOMAIN,
|
||||
_KEY_CONTACT_EMAIL,
|
||||
_KEY_MEDIA_LIMITS,
|
||||
_KEY_CONSENT_POLICY,
|
||||
_KEY_DEVICE_CHECK,
|
||||
_KEY_VIRTUAL_BACKGROUND,
|
||||
)
|
||||
"""Все ключи, которыми управляет `InstanceSettingsService` — единый источник истины
|
||||
для тестовой изоляции от состояния `instance_settings` в общей dev-БД
|
||||
(`tests/conftest.py::clean_instance_settings`)."""
|
||||
|
||||
_DEFAULT_AI_LEVEL_VALUE = {"level": "min"}
|
||||
_DEFAULT_SUMMARY_RECIPIENTS_VALUE = {"mode": "all"}
|
||||
_DEFAULT_DISPLAY_TIMEZONE_VALUE = {"tz": "Europe/Moscow"}
|
||||
|
||||
Reference in New Issue
Block a user