Как вы тестируете код Django, который использует commit_manually( ) из юниттеста?
У меня есть долгосрочный метод, который удаляет большое количество записей, достаточное для того, чтобы он не мог сохранить все эти изменения в одной транзакции, не потребляя при этом всю системную память. Поэтому я оборачиваю его в @commit_manually
и периодически вызываю commit()
.
Однако в Django 1.6 все юнит-тесты теперь завернуты в transaction.atomic()
, поэтому, если я попытаюсь сделать какие-либо ручные коммиты, я получу ошибку:
django.db.transaction.TransactionManagementError: Это запрещено, когда активен «атомарный» блок.
Каков обходной путь для этого?