Refactor metrics handling and improve logging
- Removed the MetricsManager initialization from `run_helper.py` to avoid duplication, as metrics are now handled in `main.py`. - Updated logging levels in `server_prometheus.py` and `metrics_middleware.py` to use debug instead of info for less critical messages. - Added metrics configuration to `BaseDependencyFactory` for better management of metrics settings. - Deleted the obsolete `metrics_exporter.py` file to streamline the codebase. - Updated various tests to reflect changes in the metrics handling and ensure proper functionality.
This commit is contained in:
@@ -80,14 +80,15 @@ class TestVoiceBotService:
|
||||
assert sticker is not None
|
||||
# Проверяем, что стикер не None (метод возвращает FSInputFile объект)
|
||||
|
||||
def test_get_random_audio_success(self, voice_service, mock_bot_db):
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_random_audio_success(self, voice_service, mock_bot_db):
|
||||
"""Тест успешного получения случайного аудио"""
|
||||
mock_bot_db.check_listen_audio.return_value = ['audio1', 'audio2']
|
||||
mock_bot_db.get_user_id_by_file_name.return_value = 123
|
||||
mock_bot_db.get_date_by_file_name.return_value = '2025-01-01 12:00:00'
|
||||
mock_bot_db.check_emoji_for_user.return_value = '😊'
|
||||
mock_bot_db.check_listen_audio = AsyncMock(return_value=['audio1', 'audio2'])
|
||||
mock_bot_db.get_user_id_by_file_name = AsyncMock(return_value=123)
|
||||
mock_bot_db.get_date_by_file_name = AsyncMock(return_value='2025-01-01 12:00:00')
|
||||
mock_bot_db.get_user_emoji = AsyncMock(return_value='😊')
|
||||
|
||||
result = voice_service.get_random_audio(456)
|
||||
result = await voice_service.get_random_audio(456)
|
||||
|
||||
assert result is not None
|
||||
assert len(result) == 3
|
||||
@@ -96,53 +97,63 @@ class TestVoiceBotService:
|
||||
assert result[1] == '2025-01-01 12:00:00'
|
||||
assert result[2] == '😊'
|
||||
|
||||
def test_get_random_audio_no_audio(self, voice_service, mock_bot_db):
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_random_audio_no_audio(self, voice_service, mock_bot_db):
|
||||
"""Тест получения аудио когда их нет"""
|
||||
mock_bot_db.check_listen_audio.return_value = []
|
||||
mock_bot_db.check_listen_audio = AsyncMock(return_value=[])
|
||||
|
||||
result = voice_service.get_random_audio(456)
|
||||
result = await voice_service.get_random_audio(456)
|
||||
|
||||
assert result is None
|
||||
|
||||
def test_get_random_audio_single_audio(self, voice_service, mock_bot_db):
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_random_audio_single_audio(self, voice_service, mock_bot_db):
|
||||
"""Тест получения аудио когда есть только одно"""
|
||||
mock_bot_db.check_listen_audio.return_value = ['audio1']
|
||||
mock_bot_db.get_user_id_by_file_name.return_value = 123
|
||||
mock_bot_db.get_date_by_file_name.return_value = '2025-01-01 12:00:00'
|
||||
mock_bot_db.check_emoji_for_user.return_value = '😊'
|
||||
mock_bot_db.check_listen_audio = AsyncMock(return_value=['audio1'])
|
||||
mock_bot_db.get_user_id_by_file_name = AsyncMock(return_value=123)
|
||||
mock_bot_db.get_date_by_file_name = AsyncMock(return_value='2025-01-01 12:00:00')
|
||||
mock_bot_db.get_user_emoji = AsyncMock(return_value='😊')
|
||||
|
||||
result = voice_service.get_random_audio(456)
|
||||
result = await voice_service.get_random_audio(456)
|
||||
|
||||
assert result is not None
|
||||
assert len(result) == 3
|
||||
assert result[0] == 'audio1'
|
||||
|
||||
def test_mark_audio_as_listened_success(self, voice_service, mock_bot_db):
|
||||
@pytest.mark.asyncio
|
||||
async def test_mark_audio_as_listened_success(self, voice_service, mock_bot_db):
|
||||
"""Тест успешной пометки аудио как прослушанного"""
|
||||
voice_service.mark_audio_as_listened('test_audio', 123)
|
||||
mock_bot_db.mark_listened_audio = AsyncMock()
|
||||
|
||||
await voice_service.mark_audio_as_listened('test_audio', 123)
|
||||
|
||||
mock_bot_db.mark_listened_audio.assert_called_once_with('test_audio', user_id=123)
|
||||
|
||||
def test_clear_user_listenings_success(self, voice_service, mock_bot_db):
|
||||
@pytest.mark.asyncio
|
||||
async def test_clear_user_listenings_success(self, voice_service, mock_bot_db):
|
||||
"""Тест успешной очистки прослушиваний"""
|
||||
voice_service.clear_user_listenings(123)
|
||||
mock_bot_db.delete_listen_count_for_user = AsyncMock()
|
||||
|
||||
await 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):
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_remaining_audio_count_success(self, voice_service, mock_bot_db):
|
||||
"""Тест получения количества оставшихся аудио"""
|
||||
mock_bot_db.check_listen_audio.return_value = ['audio1', 'audio2', 'audio3']
|
||||
mock_bot_db.check_listen_audio = AsyncMock(return_value=['audio1', 'audio2', 'audio3'])
|
||||
|
||||
result = voice_service.get_remaining_audio_count(123)
|
||||
result = await 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):
|
||||
@pytest.mark.asyncio
|
||||
async def test_get_remaining_audio_count_zero(self, voice_service, mock_bot_db):
|
||||
"""Тест получения количества оставшихся аудио когда их нет"""
|
||||
mock_bot_db.check_listen_audio.return_value = []
|
||||
mock_bot_db.check_listen_audio = AsyncMock(return_value=[])
|
||||
|
||||
result = voice_service.get_remaining_audio_count(123)
|
||||
result = await voice_service.get_remaining_audio_count(123)
|
||||
|
||||
assert result == 0
|
||||
mock_bot_db.check_listen_audio.assert_called_once_with(user_id=123)
|
||||
|
||||
Reference in New Issue
Block a user