Python 3.8+unittestфункция
unittest.addModuleCleanup()
фикстуры
Регистрирует функцию очистки уровня модуля: она вызовется после tearDownModule(), даже если setUpModule() упал.
Синтаксис
unittest.addModuleCleanup(function, /, *args, **kwargs)
Главное отличие от tearDownModule: тот не вызывается, если setUpModule() бросил исключение, а очистки, зарегистрированные до падения, выполняются всё равно — так не утекают временные файлы и соединения. Вызываются они в обратном порядке регистрации (LIFO), как стек. Регистрировать её стоит сразу после захвата ресурса, а не в конце setUpModule.
Примеры
# Python 3.11+
import unittest
unittest.addModuleCleanup(print, 'first registered')
unittest.addModuleCleanup(print, 'second registered')
unittest.doModuleCleanups() # → second registered / first registered
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности