Python Glossary English

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