fix linter, fix ci, fix tests
This commit is contained in:
@@ -5,12 +5,8 @@
|
||||
from unittest.mock import AsyncMock, MagicMock, patch
|
||||
|
||||
import pytest
|
||||
|
||||
from helper_bot.handlers.admin.dependencies import (
|
||||
AdminAccessMiddleware,
|
||||
get_bot_db,
|
||||
get_settings,
|
||||
)
|
||||
from helper_bot.handlers.admin.dependencies import (AdminAccessMiddleware,
|
||||
get_bot_db, get_settings)
|
||||
|
||||
|
||||
@pytest.mark.unit
|
||||
@@ -28,8 +24,12 @@ class TestAdminAccessMiddleware:
|
||||
"""Мок handler."""
|
||||
return AsyncMock(return_value="handler_result")
|
||||
|
||||
@patch("helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock)
|
||||
async def test_access_granted_calls_handler(self, mock_check_access, middleware, mock_handler):
|
||||
@patch(
|
||||
"helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock
|
||||
)
|
||||
async def test_access_granted_calls_handler(
|
||||
self, mock_check_access, middleware, mock_handler
|
||||
):
|
||||
"""При доступе разрешён вызывается handler с event и data."""
|
||||
mock_check_access.return_value = True
|
||||
event = MagicMock()
|
||||
@@ -44,7 +44,9 @@ class TestAdminAccessMiddleware:
|
||||
mock_handler.assert_awaited_once_with(event, data)
|
||||
assert result == "handler_result"
|
||||
|
||||
@patch("helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock)
|
||||
@patch(
|
||||
"helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock
|
||||
)
|
||||
async def test_access_denied_answers_and_does_not_call_handler(
|
||||
self, mock_check_access, middleware, mock_handler
|
||||
):
|
||||
@@ -64,7 +66,9 @@ class TestAdminAccessMiddleware:
|
||||
mock_handler.assert_not_awaited()
|
||||
assert result is None
|
||||
|
||||
@patch("helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock)
|
||||
@patch(
|
||||
"helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock
|
||||
)
|
||||
@patch("helper_bot.handlers.admin.dependencies.get_global_instance")
|
||||
async def test_fallback_get_db_from_global_when_bot_db_missing(
|
||||
self, mock_get_global, mock_check_access, middleware, mock_handler
|
||||
@@ -86,11 +90,17 @@ class TestAdminAccessMiddleware:
|
||||
mock_bdf.get_db.assert_called_once()
|
||||
mock_check_access.assert_awaited_once_with(1, mock_bdf.get_db.return_value)
|
||||
|
||||
@patch("helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock)
|
||||
async def test_event_without_from_user_calls_handler(self, mock_check_access, middleware, mock_handler):
|
||||
@patch(
|
||||
"helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock
|
||||
)
|
||||
async def test_event_without_from_user_calls_handler(
|
||||
self, mock_check_access, middleware, mock_handler
|
||||
):
|
||||
"""Если у event нет from_user, handler вызывается (проверка доступа не выполняется)."""
|
||||
|
||||
class EventWithoutUser:
|
||||
pass
|
||||
|
||||
event = EventWithoutUser()
|
||||
data = {}
|
||||
|
||||
@@ -100,7 +110,9 @@ class TestAdminAccessMiddleware:
|
||||
mock_handler.assert_awaited_once_with(event, data)
|
||||
assert result == "handler_result"
|
||||
|
||||
@patch("helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock)
|
||||
@patch(
|
||||
"helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock
|
||||
)
|
||||
async def test_handler_typeerror_missing_data_calls_handler_without_data(
|
||||
self, mock_check_access, middleware
|
||||
):
|
||||
@@ -127,8 +139,12 @@ class TestAdminAccessMiddleware:
|
||||
assert call_count == 2
|
||||
assert result == "ok"
|
||||
|
||||
@patch("helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock)
|
||||
async def test_handler_other_exception_reraises(self, mock_check_access, middleware):
|
||||
@patch(
|
||||
"helper_bot.handlers.admin.dependencies.check_access", new_callable=AsyncMock
|
||||
)
|
||||
async def test_handler_other_exception_reraises(
|
||||
self, mock_check_access, middleware
|
||||
):
|
||||
"""При другом исключении в handler оно пробрасывается."""
|
||||
mock_check_access.return_value = True
|
||||
|
||||
|
||||
Reference in New Issue
Block a user