Как написать фикстуру, которая подменяет настоящую базу данных на тестовую?

вот мой файлик conftest.py:

from server.database import config
import pytest
@pytest.fixture(scope="session", autouse=True)
def fake_db():
    # config.db = config.client.test_db
    config.use_test()
    yield
    config.client.drop_database('test_db')

файлик test_user.py:

from server.tests.main import client



def test_create_user(fake_db):
    response = client.post(url='api/users', json={'chat_id': 0, 'parameters': {'test': 'test'}})
    assert response.status_code == 201
    response = client.post(url='api/users', json={'chat_id': 0, 'parameters': {'test': 'test'}})
    assert response.status_code == 400

файл database.py:

class LinkBD:
    def __init__(self, client):
        self.client = client
        self.db = client.game_bot

    def get_db(self):
        return self.db

    def use_test(self):
        self.db = client.test_db


config = LinkBD(client=client)
db = config.get_db()

это импорты в файле user, отвечающим за crud:

from server.database import  db

users = db.users

Я только учусь использовать pytest, поэтому не судите строго. Не могу разобраться, как мне сделать так, чтобы фикстура подменяла мою базу данных на тестовую. Импорты в файле user происходят раньше, поэтому скорее всего config.use_test() становится бесполезным..


Ответы (0 шт):