我正在将数据从旧版系统传输到Django。为了确保当前数据库的完整性,我将手动提交所有内容。

但是,在编写单元测试时,事务将无法正确回滚。由于TestCase可能正在使用事务,是否有任何方法可以在Django中正确测试依赖事务的代码?

@transaction.commit_manually
def import_records():
    # initial prep
    try:
        import_data()
    except Exception as error:
        rollback = True
    except (KeyboardInterrupt, SystemExit):
        sys.stdout.write("Import canceled\n")
        rollback = True
    if rollback is True:
        transaction.rollback()
    # save history of import

最佳答案

我相信您正在寻找的 TransactionTestCase 与正常的TestCase相比,处理设置和拆卸的方式有所不同。

10-06 15:49