Как сбросить тестовую базу данных MongoDB после асинхронного приспособления без ошибок цикла событий в Pytest?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как сбросить тестовую базу данных MongoDB после асинхронного приспособления без ошибок цикла событий в Pytest?

Сообщение Anonymous »


import pytest
import pytest_asyncio
from motor.motor_asyncio import AsyncIOMotorClient
from odmantic import AIOEngine
import os
from typing import AsyncGenerator
from app.main import app
from app.db.database import get_database
from fastapi.testclient import TestClient

# Test database configuration
TEST_DATABASE_URL = os.getenv("TEST_DATABASE_URL", "mongodb://localhost:27017")
TEST_DATABASE_NAME = "test_db"

@pytest_asyncio.fixture(scope="session")
async def event_loop():
"""Create an instance of the default event loop for the test session."""
loop = asyncio.new_event_loop()
asyncio.set_event_loop(loop)
yield loop
loop.close()

@pytest_asyncio.fixture(scope="function")
async def test_engine() -> AsyncGenerator[AIOEngine, None]:
"""Create a test database engine and clean up after each test."""
client = AsyncIOMotorClient(TEST_DATABASE_URL)
engine = AIOEngine(client=client, database=TEST_DATABASE_NAME)

yield engine

try:
print(f"🗑️ Dropping database: {TEST_DATABASE_NAME}")
await client.drop_database(TEST_DATABASE_NAME) #
Я пытаюсь настроить тестовые приложения для моего приложения Fastapi с использованием MongoDB (через мотор) и odmantic (aioEngine). Я сталкиваюсь с проблемой во время разрыва приспособления при попытке сбросить тестовую базу данных:
Ошибка Ошибка базы данных: этот цикл событий уже закрыт


Подробнее здесь: https://stackoverflow.com/questions/796 ... -event-loo
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»