如何在Django中测试手动数据库事务代码?

时间:2013-04-11 17:25:46

标签: python django unit-testing transactions

我正在将遗留系统中的数据传输到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

1 个答案:

答案 0 :(得分:11)

我相信您正在寻找TransactionTestCase处理设置和拆解的方式与普通TestCase不同。