2013-04-11 9 views
6

Przenoszę dane z dotychczasowego systemu do Django. W celu zapewnienia integralności bieżącej bazy danych wszystko robię ręcznie.Jak przetestować ręczny kod transakcji DB w Django?

Jednak podczas pisania testów jednostkowych transakcje nie zostaną poprawnie wycofane. Ponieważ TestCase prawdopodobnie używa transakcji, czy jest jakiś sposób, aby właściwie przetestować kod w Django, który opiera się na transakcjach?

@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 

Odpowiedz

10

wierzę szukasz TransactionTestCase który obsługuje konfigurację i przerywaniem różnie to normalne TestCase.

+0

Awesome - dziękuję bardzo! Dokumentacja dotycząca transakcji nie zawiera informacji o tym, jak poprawnie przetestować. https://docs.djangoproject.com/en/1.5/topics/db/transactions/ – strongriley

Powiązane problemy