Я строю приложение FASTAPI, используя шаблон репозитория с Beanie ODM для MongoDB. Я пытаюсь настроить тесты с использованием pytest-asyncio, но я сталкиваюсь с ошибкой Beanie.exceptions.collectionwasnotinitialization при запуске моих тестов.
Вот моя структура проекта : < /p>
app.include_router(attribute.router) < /code> инициализация базы данных (lib/db_initializer.py[/code]): [code]# imports are omitted
async def init_db(mongo_uri:str, db_name:str): client = AsyncIOMotorClient(mongo_uri) db = client[db_name] await init_beanie(database=db, document_models=get_beanie_models()) < /code> Настройка теста в (tests/conftest.py[/code]): [code]# some imports are omitted
from product_catalouge.core.config import settings from product_catalouge.lib.models_loader import get_beanie_models from product_catalouge.lib.db_initializer import init_db from product_catalouge.web.api.routers import attribute
routers = [attribute]
@pytest_asyncio.fixture(autouse=True) async def testdb(): db_client = AsyncIOMotorClient(settings.db_uri) try: await db_client.server_info() print("[TEST DB CONNECTION] MongoDB connection successful.") except Exception as e: print(f"[TEST DB CONNECTION] MongoDB connection failed: {e}") raise await init_beanie(database=db_client.get_database(name=settings.test_db_name), document_models=get_beanie_models()) print("[TEST DB INITIALIZATION] Beanie initialization complete.") yield db_client await db_client.drop_database(settings.test_db_name) print("[TEST DB TEARDOWN] Test database dropped.")
@pytest_asyncio.fixture() async def three_attrs(testdb, attrs): inserted_attrs = [] for attr in attrs: inserted_attr = await AttributeModel(**attr).insert() inserted_attrs.append(inserted_attr) yield inserted_attrs < /code> Когда я запускаю этот тест: < /p> async def test_get_all_attrs(testdb, three_attrs, test_app): async with AsyncClient(transport=ASGITransport(test_app), base_url="http://test", follow_redirects=True) as ac: res = await ac.get("/api/attributes") assert res.status_code == 200 assert len(res.json()) == 3 < /code> Я получаю ошибку: beanie.exceptions.collectionwasnotinitialization < /code>, приложение работает нормально, а также другие тесты. Я подозреваю Я настраиваю тестовую базу данных или управляю асинхронным контекстом, но я не уверен, что делаю не так. Beanie Odm? Когда я получил ошибку beanie.exceptions.collectionwasnotinialialized [/code], я, хотя это произошло из -за отсутствия функциональности в mongomock_motor.asyncmongomockclient , но ошибка сохраняется даже с реальным DB Comen. п>
Когда в коде задачи в коде задачи существуют операции, Beanie.exceptions.collectionwasnotinialized ошибочно выбрасывается.
и все работает хорошо, если те же функции называются как обычные функции, а не задачи. Можно ли сказать мне, как это сделать,...
Следующий код работает хорошо, если не помещал асинхронные функции в асинсио. Катер и пусть они запускают один за другим (с ожиданием). Но когда я добавляю их в асинсио. /> import asyncio
Я пытаюсь реализовать функциональность загрузки файлов в моем проекте Native CLI React (Targeting Android) с использованием React-C-Document-Picker . Я столкнулся с ошибкой компиляции, связанной с GuardEdResultAsynctask после установки пакета....
Я пытаюсь реализовать функциональность загрузки файлов в моем проекте Native CLI React (Targeting Android) с использованием React-C-Document-Picker . Я столкнулся с ошибкой компиляции, связанной с GuardEdResultAsynctask после установки пакета....
Я пытаюсь реализовать функциональность загрузки файлов в моем проекте Native CLI React (Targeting Android) с использованием React-C-Document-Picker . Я столкнулся с ошибкой компиляции, связанной с GuardEdResultAsynctask после установки пакета....