Files
kandrusyak_bot/tests/test_config.py
2026-07-25 15:57:30 +03:00

92 lines
3.0 KiB
Python

import os
import unittest
from unittest.mock import patch
from assistant_bot import config
class WhisperConfigTests(unittest.TestCase):
def test_gpu_int8_defaults(self) -> None:
variable_names = (
config.WHISPER_MODEL_ENV_NAME,
config.WHISPER_DEVICE_ENV_NAME,
config.WHISPER_COMPUTE_TYPE_ENV_NAME,
)
with patch("assistant_bot.config.load_env_file"), patch.dict(
os.environ,
{},
clear=False,
):
for variable_name in variable_names:
os.environ.pop(variable_name, None)
self.assertEqual(config.get_whisper_model(), "large-v3")
self.assertEqual(config.get_whisper_device(), "cuda")
self.assertEqual(config.get_whisper_compute_type(), "int8")
class AssistantModeConfigTests(unittest.TestCase):
def test_local_mode_is_default(self) -> None:
with patch("assistant_bot.config.load_env_file"), patch.dict(
os.environ,
{},
clear=False,
):
os.environ.pop(config.MODE_ENV_NAME, None)
self.assertEqual(config.get_assistant_mode(), "local")
def test_yandex_mode_is_supported(self) -> None:
with patch("assistant_bot.config.load_env_file"), patch.dict(
os.environ,
{config.MODE_ENV_NAME: "YANDEX"},
clear=False,
):
self.assertEqual(config.get_assistant_mode(), "yandex")
def test_unknown_mode_is_rejected(self) -> None:
with patch("assistant_bot.config.load_env_file"), patch.dict(
os.environ,
{config.MODE_ENV_NAME: "cloud"},
clear=False,
):
with self.assertRaises(RuntimeError):
config.get_assistant_mode()
def test_yandex_model_is_full_gpt_uri(self) -> None:
with patch("assistant_bot.config.load_env_file"), patch.dict(
os.environ,
{
config.YANDEX_CLOUD_FOLDER_ENV_NAME: "folder-id",
config.YANDEX_CLOUD_MODEL_ENV_NAME: "yandexgpt/latest",
},
clear=False,
):
self.assertEqual(
config.get_default_yandex_model(),
"gpt://folder-id/yandexgpt/latest",
)
class PasswordConfigTests(unittest.TestCase):
def test_password_is_required(self) -> None:
with patch("assistant_bot.config.load_env_file"), patch.dict(
os.environ,
{},
clear=False,
):
os.environ.pop(config.PASSWORD_ENV_NAME, None)
with self.assertRaises(RuntimeError):
config.get_assistant_password()
def test_password_is_read_from_environment(self) -> None:
with patch("assistant_bot.config.load_env_file"), patch.dict(
os.environ,
{config.PASSWORD_ENV_NAME: " test-password "},
clear=False,
):
self.assertEqual(config.get_assistant_password(), "test-password")
if __name__ == "__main__":
unittest.main()