所以我有一个SQLAlchemy模型,它有一个事件侦听器:
class User(db.Model):
id = db.Column(db.Integer, primary_key=True)
@event.listens_for(User, "after_insert")
@event.listens_for(User, "after_update")
def do_something(mapper, connection, self):
foo = SomeClass(self)
foo.do_something_to_database()
我有一个单元测试需要更新/插入模型
^{pr2}$但是,我的测试失败了,因为do_something
函数似乎仍在被调用,并且没有成功地模拟。我试着了解如何修补here(它正确地调用了这个函数?)我试图通过SQLAlchemy源代码here查找要修补的适当模块(类似于@patch('sqlalchemy.event.registrat._listen_fn')
),但是没有用。在
以前有人遇到过这种情况吗?在
也许有一个上下文管理器类可以删除侦听器并在退出时再次添加它。在
比如:
然后使用它:
^{pr2}$我找到了一个解决方法来禁用单元测试上的事件
相关问题 更多 >
编程相关推荐