#!/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) == "🚨"