diff --git a/tests/test_dispatcher/test_fsm/storage/test_redis.py b/tests/test_dispatcher/test_fsm/storage/test_redis.py index 1a2280d6..786212f2 100644 --- a/tests/test_dispatcher/test_fsm/storage/test_redis.py +++ b/tests/test_dispatcher/test_fsm/storage/test_redis.py @@ -1,6 +1,8 @@ +from typing import Literal + import pytest -from aiogram.dispatcher.fsm.storage.base import StorageKey +from aiogram.dispatcher.fsm.storage.base import StorageKey, DEFAULT_DESTINY from aiogram.dispatcher.fsm.storage.redis import DefaultKeyBuilder pytestmark = pytest.mark.asyncio @@ -9,8 +11,7 @@ PREFIX = "test" BOT_ID = 42 CHAT_ID = -1 USER_ID = 2 -FIELD = "data" -DESTINY = "testing" +FIELD: Literal["data"] = "data" class TestRedisDefaultKeyBuilder: @@ -19,8 +20,8 @@ class TestRedisDefaultKeyBuilder: [ [False, False, f"{PREFIX}:{CHAT_ID}:{USER_ID}:{FIELD}"], [True, False, f"{PREFIX}:{BOT_ID}:{CHAT_ID}:{USER_ID}:{FIELD}"], - [True, True, f"{PREFIX}:{BOT_ID}:{CHAT_ID}:{USER_ID}:{DESTINY}:{FIELD}"], - [False, True, f"{PREFIX}:{CHAT_ID}:{USER_ID}:{DESTINY}:{FIELD}"], + [True, True, f"{PREFIX}:{BOT_ID}:{CHAT_ID}:{USER_ID}:{DEFAULT_DESTINY}:{FIELD}"], + [False, True, f"{PREFIX}:{CHAT_ID}:{USER_ID}:{DEFAULT_DESTINY}:{FIELD}"], ], ) async def test_generate_key(self, with_bot_id: bool, with_destiny: bool, result: str): @@ -29,5 +30,17 @@ class TestRedisDefaultKeyBuilder: with_bot_id=with_bot_id, with_destiny=with_destiny, ) - key = StorageKey(chat_id=CHAT_ID, user_id=USER_ID, bot_id=BOT_ID, destiny=DESTINY) + key = StorageKey(chat_id=CHAT_ID, user_id=USER_ID, bot_id=BOT_ID, destiny=DEFAULT_DESTINY) assert key_builder.build(key, FIELD) == result + + async def test_destiny_check(self): + key_builder = DefaultKeyBuilder( + with_destiny=False, + ) + key = StorageKey(chat_id=CHAT_ID, user_id=USER_ID, bot_id=BOT_ID) + assert key_builder.build(key, FIELD) + + key = StorageKey(chat_id=CHAT_ID, user_id=USER_ID, bot_id=BOT_ID, + destiny="CUSTOM_TEST_DESTINY") + with pytest.raises(ValueError): + key_builder.build(key, FIELD)