added fixture registration for pymongo storage

This commit is contained in:
kievzenit 2025-08-11 17:29:35 +03:00
parent cb6b6d509c
commit 63423941be

View file

@ -17,6 +17,7 @@ from aiogram.fsm.storage.memory import (
SimpleEventIsolation,
)
from aiogram.fsm.storage.mongo import MongoStorage
from aiogram.fsm.storage.pymongo import PyMongoStorage
from aiogram.fsm.storage.redis import RedisStorage
from tests.mocked_bot import MockedBot
@ -102,6 +103,36 @@ async def mongo_storage(mongo_server):
await storage.close()
@pytest.fixture()
def pymongo_server(request):
mongo_uri = request.config.getoption("--mongo")
if mongo_uri is None:
pytest.skip(SKIP_MESSAGE_PATTERN.format(db="mongo"))
else:
return mongo_uri
@pytest.fixture()
async def pymongo_storage(pymongo_server):
try:
parse_mongo_url(pymongo_server)
except InvalidURI as e:
raise UsageError(INVALID_URI_PATTERN.format(db="mongo", uri=pymongo_server, err=e))
storage = PyMongoStorage.from_url(
url=pymongo_server,
connection_kwargs={"serverSelectionTimeoutMS": 2000},
)
try:
await storage._client.server_info()
except PyMongoError as e:
pytest.fail(str(e))
else:
yield storage
await storage._client.drop_database(storage._database)
finally:
await storage.close()
@pytest.fixture()
async def memory_storage():
storage = MemoryStorage()