如何在Django单元测试中测试commit_manually

时间:2014-04-29 16:29:27

标签: python django django-orm django-unittest

如何测试单元测试中使用commit_manually()的Django代码?

我有一个长时间运行的方法,删除大量的记录,足以使它无法在不消耗所有系统内存的情况下将所有这些更改保留在单个事务中。因此,我将其打包在@commit_manually中并定期调用commit()

但是,在Django 1.6中,所有单元测试现在都包含在transaction.atomic()中,所以如果我尝试进行任何手动提交,我会收到错误:

django.db.transaction.TransactionManagementError:当'原子'块处于活动状态时禁止此操作。

这是一个什么样的解决办法?