Я использую pytest в качестве основы для тестирования своего приложения, и я также хочу использовать pytest factoryboy. На данный момент мой conftest.py выглядит почти так же, как в примере:
import factory
from sqlalchemy import create_engine
from sqlalchemy.orm import scoped_session, sessionmaker
from model import model
engine = create_engine('sqlite://')
session = scoped_session(sessionmaker(bind=engine))
# Create tables
model.Base.metadata.create_all(engine)
class ExampleFactory(factory.alchemy.SQLAlchemyModelFactory):
class Meta:
model = model.ExampleClass
sqlalchemy_session = session
label = factory.Sequence(lambda n: u'object_%d' % n)
У меня несколько таких заводов. Проблема в том, что когда я использую фабрики таким образом, сеанс не будет разрываться при каждом модульном тесте. Я в основном использую один большой сеанс для множества модульных тестов, которые у меня есть. Не очень идеально. Используя фикстуры, я мог обновлять сеанс при каждом модульном тесте. Есть ли способ сделать это с помощью factoryboy pytest?