fix linter, fix ci, fix tests
This commit is contained in:
@@ -6,12 +6,8 @@ from unittest.mock import AsyncMock, MagicMock, patch
|
||||
|
||||
import pytest
|
||||
from aiohttp import web
|
||||
|
||||
from helper_bot.server_prometheus import (
|
||||
MetricsServer,
|
||||
start_metrics_server,
|
||||
stop_metrics_server,
|
||||
)
|
||||
from helper_bot.server_prometheus import (MetricsServer, start_metrics_server,
|
||||
stop_metrics_server)
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
@@ -40,7 +36,9 @@ class TestMetricsServer:
|
||||
self, mock_metrics_module
|
||||
):
|
||||
"""metrics_handler при успехе возвращает 200 и данные метрик."""
|
||||
mock_metrics_module.get_metrics.return_value = b"# TYPE bot_commands_total counter"
|
||||
mock_metrics_module.get_metrics.return_value = (
|
||||
b"# TYPE bot_commands_total counter"
|
||||
)
|
||||
server = MetricsServer(host="0.0.0.0", port=8080)
|
||||
request = MagicMock(spec=web.Request)
|
||||
|
||||
@@ -63,9 +61,7 @@ class TestMetricsServer:
|
||||
assert "Metrics not available" in response.text
|
||||
|
||||
@patch("helper_bot.server_prometheus.metrics")
|
||||
async def test_metrics_handler_on_exception_returns_500(
|
||||
self, mock_metrics_module
|
||||
):
|
||||
async def test_metrics_handler_on_exception_returns_500(self, mock_metrics_module):
|
||||
"""metrics_handler при исключении в get_metrics возвращает 500."""
|
||||
mock_metrics_module.get_metrics.side_effect = RuntimeError("metrics error")
|
||||
server = MetricsServer(host="0.0.0.0", port=8080)
|
||||
@@ -100,9 +96,7 @@ class TestMetricsServer:
|
||||
assert "Metrics not available" in response.text
|
||||
|
||||
@patch("helper_bot.server_prometheus.metrics")
|
||||
async def test_health_handler_empty_metrics_returns_503(
|
||||
self, mock_metrics_module
|
||||
):
|
||||
async def test_health_handler_empty_metrics_returns_503(self, mock_metrics_module):
|
||||
"""health_handler при пустых метриках возвращает 503."""
|
||||
mock_metrics_module.get_metrics.return_value = b""
|
||||
server = MetricsServer(host="0.0.0.0", port=8080)
|
||||
@@ -173,9 +167,7 @@ class TestMetricsServer:
|
||||
|
||||
@patch.object(MetricsServer, "start", new_callable=AsyncMock)
|
||||
@patch.object(MetricsServer, "stop", new_callable=AsyncMock)
|
||||
async def test_context_manager_enters_and_exits(
|
||||
self, mock_stop, mock_start
|
||||
):
|
||||
async def test_context_manager_enters_and_exits(self, mock_stop, mock_start):
|
||||
"""Использование как async context manager вызывает start и stop."""
|
||||
mock_start.return_value = None
|
||||
server = MetricsServer(host="0.0.0.0", port=8080)
|
||||
@@ -228,6 +220,7 @@ class TestStartStopMetricsServer:
|
||||
):
|
||||
"""stop_metrics_server при запущенном сервере останавливает его и обнуляет глобальную переменную."""
|
||||
import helper_bot.server_prometheus as mod
|
||||
|
||||
mock_instance = MagicMock()
|
||||
mock_instance.stop = AsyncMock()
|
||||
old_server = mod.metrics_server
|
||||
@@ -242,6 +235,7 @@ class TestStartStopMetricsServer:
|
||||
async def test_stop_metrics_server_when_none_does_not_raise(self):
|
||||
"""stop_metrics_server при metrics_server=None не падает."""
|
||||
import helper_bot.server_prometheus as mod
|
||||
|
||||
old_server = mod.metrics_server
|
||||
mod.metrics_server = None
|
||||
try:
|
||||
|
||||
Reference in New Issue
Block a user