Python Glossary English

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Сообщить о неточности