53 lines
1.8 KiB
Python
53 lines
1.8 KiB
Python
"""
|
|
Моки для тестового окружения
|
|
"""
|
|
import sys
|
|
import os
|
|
from unittest.mock import Mock, patch
|
|
|
|
# Патчим загрузку настроек до импорта модулей
|
|
def setup_test_mocks():
|
|
"""Настройка моков для тестов"""
|
|
# Мокаем ConfigParser
|
|
mock_config = Mock()
|
|
|
|
def mock_getitem(section):
|
|
if section == 'Telegram':
|
|
return {
|
|
'bot_token': 'test_token_123',
|
|
'preview_link': 'False',
|
|
'main_public': '@test',
|
|
'group_for_posts': '-1001234567890',
|
|
'group_for_message': '-1001234567891',
|
|
'group_for_logs': '-1001234567893',
|
|
'important_logs': '-1001234567894',
|
|
'test_channel': '-1001234567895'
|
|
}
|
|
elif section == 'Settings':
|
|
return {
|
|
'logs': 'True',
|
|
'test': 'False'
|
|
}
|
|
return {}
|
|
|
|
# Создаем MagicMock для поддержки __getitem__
|
|
mock_config_instance = Mock()
|
|
mock_config_instance.sections.return_value = ['Telegram', 'Settings']
|
|
mock_config_instance.__getitem__ = Mock(side_effect=mock_getitem)
|
|
|
|
mock_config.return_value = mock_config_instance
|
|
|
|
# Применяем патчи
|
|
config_patcher = patch('helper_bot.utils.base_dependency_factory.configparser.ConfigParser', mock_config)
|
|
config_patcher.start()
|
|
|
|
# Мокаем BotDB
|
|
mock_db = Mock()
|
|
db_patcher = patch('helper_bot.utils.base_dependency_factory.BotDB', mock_db)
|
|
db_patcher.start()
|
|
|
|
return config_patcher, db_patcher
|
|
|
|
# Настраиваем моки при импорте модуля
|
|
config_patcher, db_patcher = setup_test_mocks()
|