Используя pytest и mongoengine, данные создаются в основной базе данных, а не в тестовой

Я установил эти пакеты:

python -m pip install pytest pytest-django

И создал фиксатор:

# core/services/tests/fixtures/checkout.py

import pytest

from bson import ObjectId
from datetime import datetime

from core.models.src.checkout import Checkout


@pytest.fixture(scope="session")
def checkout(mongo_db):
    checkout = Checkout(
        user_id=59,
        amount=35_641,
    )
    checkout.save()
    return checkout

и импортировал его в conftest.py в том же каталоге:

# core/service/tests/conftest.py

from core.service.tests.fixtures.checkout import *

Вот как я подключаюсь к тестовой базе данных:

# conftest.py

import pytest

from mongoengine import connect, disconnect, connection

@pytest.fixture(scope="session", autouse=True)
def mongo_db():
    connect(
        db="db",
        name="testdb",
        alias="test_db",
        host="mongodb://localhost:27017/",
        serverSelectionTimeoutMS=5000,
    )

    connection._connections.clear()

    yield

    disconnect()

А это мой настоящий тест:

import json
import pytest

from core.service.checkout import a_function


def test_a_function(checkout):
    assert checkout.value is False
    response = a_function(id=checkout.id, value=True)
    assert response.status_code == 200
    response_data = json.loads(response.content.decode("UTF-8"))
    assert response_data.get("success", None) is True
    checkout.reload()
    assert checkout.value is True

Но каждый раз, когда я запускаю pytest, в основной базе данных создается новая запись. Как я могу это исправить, чтобы использовать тестовую базу данных?

Вернуться на верх