Merge branch 'dev-3.x' into scenes

# Conflicts:
#	tests/test_dispatcher/test_event/test_handler.py
This commit is contained in:
JRoot Junior 2023-11-16 22:55:36 +02:00
commit 82f1c8a418
No known key found for this signature in database
GPG key ID: 738964250D5FF6E2
20 changed files with 214 additions and 126 deletions

View file

@ -1,6 +1,10 @@
from unittest import mock
from unittest.mock import AsyncMock, patch
import pytest
from aiogram.fsm.storage.base import BaseEventIsolation, StorageKey
from aiogram.fsm.storage.redis import RedisEventIsolation
from tests.mocked_bot import MockedBot
@ -18,7 +22,6 @@ def create_storage_key(bot: MockedBot):
],
)
class TestIsolations:
@pytest.mark.filterwarnings("ignore::ResourceWarning")
async def test_lock(
self,
isolation: BaseEventIsolation,
@ -26,3 +29,35 @@ class TestIsolations:
):
async with isolation.lock(key=storage_key):
assert True, "Are you kidding me?"
class TestRedisEventIsolation:
def test_init_without_key_builder(self):
redis = AsyncMock()
isolation = RedisEventIsolation(redis=redis)
assert isolation.redis is redis
assert isolation.key_builder is not None
def test_init_with_key_builder(self):
redis = AsyncMock()
key_builder = AsyncMock()
isolation = RedisEventIsolation(redis=redis, key_builder=key_builder)
assert isolation.redis is redis
assert isolation.key_builder is key_builder
def test_create_from_url(self):
with patch("redis.asyncio.connection.ConnectionPool.from_url") as pool:
isolation = RedisEventIsolation.from_url("redis://localhost:6379/0")
assert isinstance(isolation, RedisEventIsolation)
assert isolation.redis is not None
assert isolation.key_builder is not None
assert pool.called_once_with("redis://localhost:6379/0")
async def test_close(self):
isolation = RedisEventIsolation(redis=AsyncMock())
await isolation.close()
# close is not called because connection should be closed from the storage
# assert isolation.redis.close.called_once()