Remove obsolete configuration management and test settings files

- Deleted the `config.py` file responsible for managing bot configuration via environment variables and `.env` files, as it is no longer needed.
- Removed the `test_settings.ini` file used for testing, which contained mock configuration data.
- Cleaned up the project structure by eliminating unused files to enhance maintainability.
This commit is contained in:
2025-09-01 20:30:10 +03:00
parent 3a7b0f6219
commit 013892dcb7
8 changed files with 998 additions and 104 deletions

View File

@@ -1,6 +1,7 @@
import pytest
from unittest.mock import Mock, AsyncMock, patch
from datetime import datetime
from pathlib import Path
from helper_bot.handlers.voice.services import VoiceBotService
from helper_bot.handlers.voice.exceptions import VoiceMessageError, AudioProcessingError
@@ -88,6 +89,57 @@ class TestVoiceBotService:
voice_service.clear_user_listenings(123)
mock_bot_db.delete_listen_count_for_user.assert_called_once_with(123)
def test_get_remaining_audio_count_success(self, voice_service, mock_bot_db):
"""Тест получения количества оставшихся аудио"""
mock_bot_db.check_listen_audio.return_value = ['audio1', 'audio2', 'audio3']
result = voice_service.get_remaining_audio_count(123)
assert result == 3
mock_bot_db.check_listen_audio.assert_called_once_with(user_id=123)
def test_get_remaining_audio_count_zero(self, voice_service, mock_bot_db):
"""Тест получения количества оставшихся аудио когда их нет"""
mock_bot_db.check_listen_audio.return_value = []
result = voice_service.get_remaining_audio_count(123)
assert result == 0
mock_bot_db.check_listen_audio.assert_called_once_with(user_id=123)
@pytest.mark.asyncio
async def test_send_welcome_messages_success(self, voice_service, mock_bot_db, mock_settings):
"""Тест успешной отправки приветственных сообщений"""
mock_message = Mock()
mock_message.from_user.id = 123
mock_message.answer = AsyncMock()
mock_message.answer.return_value = Mock()
mock_message.answer_sticker = AsyncMock()
with patch.object(voice_service, 'get_welcome_sticker') as mock_sticker:
mock_sticker.return_value = 'test_sticker.tgs'
await voice_service.send_welcome_messages(mock_message, '😊')
# Проверяем, что сообщения отправлены
assert mock_message.answer.call_count >= 1
@pytest.mark.asyncio
async def test_send_welcome_messages_no_sticker(self, voice_service, mock_bot_db, mock_settings):
"""Тест отправки приветственных сообщений без стикера"""
mock_message = Mock()
mock_message.from_user.id = 123
mock_message.answer = AsyncMock()
mock_message.answer.return_value = Mock()
with patch.object(voice_service, 'get_welcome_sticker') as mock_sticker:
mock_sticker.return_value = None
await voice_service.send_welcome_messages(mock_message, '😊')
# Проверяем, что сообщения отправлены
assert mock_message.answer.call_count >= 1
class TestVoiceHandlers:
@@ -149,6 +201,7 @@ class TestUtils:
"""Тест валидации голосового сообщения"""
mock_message = Mock()
mock_message.content_type = 'voice'
mock_message.voice = Mock()
result = validate_voice_message(mock_message)
@@ -171,6 +224,22 @@ class TestUtils:
assert result == "😊"
mock_bot_db.check_emoji_for_user.assert_called_once_with(123)
def test_get_user_emoji_safe_none(self, mock_bot_db):
"""Тест безопасного получения эмодзи когда его нет"""
mock_bot_db.check_emoji_for_user.return_value = None
result = get_user_emoji_safe(mock_bot_db, 123)
assert result == "😊"
def test_get_user_emoji_safe_error(self, mock_bot_db):
"""Тест безопасного получения эмодзи при ошибке"""
mock_bot_db.check_emoji_for_user.return_value = "Ошибка"
result = get_user_emoji_safe(mock_bot_db, 123)
assert result == "Ошибка"
class TestExceptions: