Python 3.8+unittestфункция
unittest.doModuleCleanups()
фикстуры
Выполняет все очистки, зарегистрированные addModuleCleanup(), в обратном порядке; обычно её вызывает сам набор тестов.
Синтаксис
unittest.doModuleCleanups()
Звать её вручную нужно только тому, кто пишет свой раннер или запускает тесты в обход TestSuite: штатный набор делает это сам после tearDownModule. Исключение в одной очистке не останавливает остальные: все функции отработают, а в конце поднимается исключение: до 3.15 — первое из них, с 3.15 — ExceptionGroup со всеми сразу. Повторный вызов ничего не делает — список опустошается.
Примеры
# Python 3.11+
import unittest
def broken():
raise ValueError('cleanup failed')
unittest.addModuleCleanup(print, 'still runs')
unittest.addModuleCleanup(broken)
try:
unittest.doModuleCleanups()
except Exception as e:
print('raised:', type(e).__name__) # → still runs / raised: — ValueError до 3.15, ExceptionGroup с 3.15
unittest.doModuleCleanups() # второй вызов — список уже пуст
См. также
Частые ошибки
Открыть в полном глоссарииdocs.python.orgСообщить о неточности