Factory Мальчик устарел от set_creation_function (см. ChangeLog 2.6.1) и рекомендует разработчикам
Заменить factory.set_creation_function (SomeFactory, creation_function) с переопределением метода _create() SomeFactory
У меня есть i) ряд производных классов factory и ii) мой сеанс db, созданный в другом модуле, поэтому я попытался заменить рабочий пример из https://github.com/mattupstate/overholt со вторым блоком кода ниже. PyCharm предупреждает меня, что импорт "db" не используется, поэтому я подозреваю, что он не может быть разыменован правильно, когда я устанавливаю sqlalchemy_session?
Работа с nosetests 1.3.7 (но FactoryBoy set_creation_function теперь устарела):
from myapp.core import db
def create_sqlalchemy_model_function(class_to_create, *args, **kwargs):
entity = class_to_create(**kwargs)
db.session.add(entity)
db.session.commit()
return entity
Factory.set_creation_function(create_sqlalchemy_model_function)
Не работает с nosetests 2.x(похоже, что db неправильно ссылается?)
from factory.alchemy import SQLAlchemyModelFactory as Factory
from myapp.core import db
class Factory():
class Meta:
sqlalchemy_session = db.session
def _create(cls, model_class, *args, **kwargs):
entity = model_class(*args, **kwargs)
db.session.add(entity)
db.session.commit()
return entity