我正在测试一个使用 SqlAlchemy (v0.7.4) 的消息处理器。在我的测试中,我使用带有 Sqlite 的Fixture (v1.4)来设置和拆除一个临时数据库。我的夹具数据包括一个带有状态字段的文件表,当处理器运行时该字段应该得到更新。
我已经确认测试、被测试的处理器和夹具都共享同一个数据库会话。
我在处理器运行之前和之后查询文件记录上的状态字段。该值应更改(从表示“正在处理”的 int 到“完成”)。我在处理器中添加了调试代码,以验证该字段是否正在使用正确的新状态值进行更新。我还能够通过检查它生成的输出文件的内容来独立验证处理器是否成功运行。但是,当我使用测试的数据库会话在测试结束时查询状态时,它始终与开始时的值相同。
我已经尝试在最终状态查询之前明确提交和刷新会话。没有任何效果。有任何想法吗?