Как добиться персистенции данных базы данных с помощью фабрик в pyTest в Django?
Я знаю, что когда мы создаем запись в тестовой базе данных внутри первого тестового случая, она недоступна из второго тестового случая.
Если мы используем приспособление, то приспособление будет запускаться перед каждым тестовым случаем, и новая запись в базе данных будет сгенерирована и предоставлена каждому тестовому случаю.
У меня есть фабрика, определенная следующим образом:
import factory
from faker import Faker
fake = Faker()
from django.contrib.auth.models import User
class UserFactory(factory.django.DjangoModelFactory):
class Meta:
model = User
username = fake.name()
который используется приспособлением, определяемым как:
import pytest
from django.contrib.auth.models import User
from pytest_factoryboy import register
from tests.factories import UserFactory
register(UserFactory)
@pytest.fixture
def user_creation_through_fixture(db, user_factory):
user = user_factory.create(username="persist")
return user
и 2 тестовых случая, определенных как:
import pytest
def test1(user_creation_through_fixture):
print(user_creation_through_fixture)
assert True
def test2(user_creation_through_fixture):
print(user_creation_through_fixture)
assert True
как я могу применить что-то вроде @pytest.fixture(scope="session") к фикстуре ?
так, чтобы во время 1-го тестового случая при запуске приспособления в базе данных была создана новая запись пользователя, а затем во время 2-го тестового случая при запуске приспособления эта же запись пользователя была предоставлена 2-му тестовому случаю.