sqlalchemy - 强制它永远不会提交?

时间:2014-04-30 17:48:00

标签: python testing sqlalchemy

我正在使用SQLAlchemy的fixture来创建一些集成测试。

我想将SQLAlchemy置于“永不提交”模式,以防止更改被写入数据库,以便我的测试完全相互隔离。有没有办法做到这一点?

我最初的想法是,也许我可以用模拟对象替换Session.commit;但是我不确定是否有其他事情可能具有相同的效果,如果我要沿着这条路走下去,我也需要嘲笑。

1 个答案:

答案 0 :(得分:1)

作用域会话管理器默认为每个连接返回相同的会话对象。因此,可以用.commit替换.flush,并在调用会话管理器时保持更改。

这会阻止提交。

要回滚所有更改,应使用session.transaction.rollback()