Files
prod/tests/infra/test_message_sender.py

93 lines
4.7 KiB
Python

#!/usr/bin/env python3
"""
Тесты для MessageSender
"""
import pytest
import sys
import os
# Добавляем путь к модулям мониторинга
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../infra/monitoring'))
from infra.monitoring.message_sender import MessageSender
class TestMessageSender:
"""Тесты для класса MessageSender"""
@pytest.fixture
def message_sender(self):
"""Создает экземпляр MessageSender для тестов"""
return MessageSender()
def test_get_cpu_emoji(self, message_sender):
"""Тест получения эмодзи для CPU"""
# Тест зеленого уровня (нормальная нагрузка)
assert message_sender._get_cpu_emoji(25.0) == "🟢"
assert message_sender._get_cpu_emoji(49.9) == "🟢"
# Тест желтого уровня (средняя нагрузка)
assert message_sender._get_cpu_emoji(50.0) == "⚠️"
assert message_sender._get_cpu_emoji(79.9) == "⚠️"
# Тест красного уровня (высокая нагрузка)
assert message_sender._get_cpu_emoji(80.0) == "🚨"
assert message_sender._get_cpu_emoji(95.0) == "🚨"
def test_get_memory_emoji(self, message_sender):
"""Тест получения эмодзи для памяти"""
# Тест зеленого уровня (нормальное использование)
assert message_sender._get_memory_emoji(30.0) == "🟢"
assert message_sender._get_memory_emoji(59.9) == "🟢"
# Тест желтого уровня (среднее использование)
assert message_sender._get_memory_emoji(60.0) == "⚠️"
assert message_sender._get_memory_emoji(84.9) == "⚠️"
# Тест красного уровня (высокое использование)
assert message_sender._get_memory_emoji(85.0) == "🚨"
assert message_sender._get_memory_emoji(95.0) == "🚨"
def test_get_load_average_emoji(self, message_sender):
"""Тест получения эмодзи для Load Average"""
# Тест зеленого уровня (нормальная нагрузка)
assert message_sender._get_load_average_emoji(4.0, 8) == "🟢" # 0.5 на ядро
assert message_sender._get_load_average_emoji(7.9, 8) == "🟢" # 0.9875 на ядро
# Тест желтого уровня (средняя нагрузка)
assert message_sender._get_load_average_emoji(8.0, 8) == "⚠️" # 1.0 на ядро
assert message_sender._get_load_average_emoji(15.9, 8) == "⚠️" # 1.9875 на ядро
# Тест красного уровня (высокая нагрузка)
assert message_sender._get_load_average_emoji(16.0, 8) == "🚨" # 2.0 на ядро
assert message_sender._get_load_average_emoji(24.0, 8) == "🚨" # 3.0 на ядро
def test_get_io_wait_emoji(self, message_sender):
"""Тест получения эмодзи для IO Wait"""
# Тест зеленого уровня (нормальный IO Wait)
assert message_sender._get_io_wait_emoji(2.0) == "🟢"
assert message_sender._get_io_wait_emoji(4.9) == "🟢"
# Тест желтого уровня (средний IO Wait)
assert message_sender._get_io_wait_emoji(5.0) == "⚠️"
assert message_sender._get_io_wait_emoji(19.9) == "⚠️"
# Тест красного уровня (высокий IO Wait)
assert message_sender._get_io_wait_emoji(20.0) == "🚨"
assert message_sender._get_io_wait_emoji(35.0) == "🚨"
def test_get_disk_space_emoji(self, message_sender):
"""Тест получения эмодзи для дискового пространства"""
# Тест зеленого уровня (нормальное использование)
assert message_sender._get_disk_space_emoji(30.0) == "🟢"
assert message_sender._get_disk_space_emoji(59.9) == "🟢"
# Тест желтого уровня (среднее использование)
assert message_sender._get_disk_space_emoji(60.0) == "⚠️"
assert message_sender._get_disk_space_emoji(89.9) == "⚠️"
# Тест красного уровня (высокое использование)
assert message_sender._get_disk_space_emoji(90.0) == "🚨"
assert message_sender._get_disk_space_emoji(95.0) == "🚨"