2013-04-11 7 views
6

私はレガシーシステムからDjangoにデータを転送しています。現在のデータベースの整合性を保証するために、私はすべて手作業でコミットしています。Djangoで手動DBトランザクションコードをテストするにはどうすればよいですか?

ただし、単体テストの作成時には、トランザクションは正しくロールバックされません。 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 

答えて

10

私はあなたが異なった、通常のTestCaseをセットアップとティアダウンを扱うTransactionTestCaseを探していると信じています。

+0

恐ろしくありがとう!トランザクションに関する文書には、適切にテストする方法は記載されていません。 https://docs.djangoproject.com/ja/1.5/topics/db/transactions/ – strongriley

関連する問題