Update docker-compose and README for Telegram bot integration; add environment file reference and clarify port usage in documentation.
This commit is contained in:
102
tests/infra/test_infra.py
Normal file
102
tests/infra/test_infra.py
Normal file
@@ -0,0 +1,102 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Тесты для инфраструктуры мониторинга
|
||||
"""
|
||||
|
||||
import pytest
|
||||
import sys
|
||||
import os
|
||||
|
||||
# Добавляем путь к модулям мониторинга
|
||||
sys.path.insert(0, os.path.join(os.path.dirname(__file__), '../../infra/monitoring'))
|
||||
|
||||
def test_imports():
|
||||
"""Тест импорта основных модулей"""
|
||||
try:
|
||||
from metrics_collector import MetricsCollector
|
||||
from message_sender import MessageSender
|
||||
from prometheus_server import PrometheusServer
|
||||
from server_monitor import ServerMonitor
|
||||
assert True
|
||||
except ImportError as e:
|
||||
pytest.fail(f"Failed to import modules: {e}")
|
||||
|
||||
def test_metrics_collector_creation():
|
||||
"""Тест создания MetricsCollector"""
|
||||
try:
|
||||
from metrics_collector import MetricsCollector
|
||||
collector = MetricsCollector()
|
||||
assert collector is not None
|
||||
assert hasattr(collector, 'get_system_info')
|
||||
assert hasattr(collector, 'get_metrics_data')
|
||||
except Exception as e:
|
||||
pytest.fail(f"Failed to create MetricsCollector: {e}")
|
||||
|
||||
def test_message_sender_creation():
|
||||
"""Тест создания MessageSender"""
|
||||
try:
|
||||
from message_sender import MessageSender
|
||||
sender = MessageSender()
|
||||
assert sender is not None
|
||||
except Exception as e:
|
||||
pytest.fail(f"Failed to create MessageSender: {e}")
|
||||
|
||||
def test_prometheus_server_creation():
|
||||
"""Тест создания PrometheusServer"""
|
||||
try:
|
||||
from prometheus_server import PrometheusServer
|
||||
server = PrometheusServer()
|
||||
assert server is not None
|
||||
assert hasattr(server, 'host')
|
||||
assert hasattr(server, 'port')
|
||||
except Exception as e:
|
||||
pytest.fail(f"Failed to create PrometheusServer: {e}")
|
||||
|
||||
def test_server_monitor_creation():
|
||||
"""Тест создания ServerMonitor"""
|
||||
try:
|
||||
from server_monitor import ServerMonitor
|
||||
monitor = ServerMonitor()
|
||||
assert monitor is not None
|
||||
assert hasattr(monitor, 'metrics_collector')
|
||||
assert hasattr(monitor, 'message_sender')
|
||||
assert hasattr(monitor, 'prometheus_server')
|
||||
except Exception as e:
|
||||
pytest.fail(f"Failed to create ServerMonitor: {e}")
|
||||
|
||||
def test_system_info_structure():
|
||||
"""Тест структуры системной информации"""
|
||||
try:
|
||||
from metrics_collector import MetricsCollector
|
||||
collector = MetricsCollector()
|
||||
system_info = collector.get_system_info()
|
||||
|
||||
# Проверяем, что system_info это словарь
|
||||
assert isinstance(system_info, dict)
|
||||
|
||||
# Проверяем наличие основных ключей
|
||||
expected_keys = ['cpu_percent', 'ram_percent', 'disk_percent', 'server_hostname']
|
||||
for key in expected_keys:
|
||||
assert key in system_info, f"Missing key: {key}"
|
||||
|
||||
except Exception as e:
|
||||
pytest.fail(f"Failed to get system info: {e}")
|
||||
|
||||
def test_metrics_data_structure():
|
||||
"""Тест структуры метрик"""
|
||||
try:
|
||||
from metrics_collector import MetricsCollector
|
||||
collector = MetricsCollector()
|
||||
metrics = collector.get_metrics_data()
|
||||
|
||||
# Проверяем, что metrics это словарь
|
||||
assert isinstance(metrics, dict)
|
||||
|
||||
# Проверяем, что есть хотя бы одна метрика
|
||||
assert len(metrics) > 0, "Metrics should not be empty"
|
||||
|
||||
except Exception as e:
|
||||
pytest.fail(f"Failed to get metrics data: {e}")
|
||||
|
||||
if __name__ == "__main__":
|
||||
pytest.main([__file__, "-v"])
|
||||
Reference in New Issue
Block a user