Add a function to be called after tearDownClass() to cleanup resources
used during the test class. Functions will be called in reverse order to
the order they are added (LIFO).
This was revealed with recent change in pytest (8.2.0):
pytest-dev/pytest#11728: For unittest-based tests, exceptions during
class cleanup (as raised by functions registered with
TestCase.addClassCleanup) are now reported instead of silently failing.
check_urlpatterns is called before cleanup_url_patterns and fails (problem was hidden by pytest < 8.2.0).
doClassCleanups can be used instead to check after-cleanup state:
This method is called unconditionally after tearDownClass(), or after
setUpClass() if setUpClass() raises an exception.
It is responsible for calling all the cleanup functions added by
addClassCleanup(). If you need cleanup functions to be called prior to
tearDownClass() then you can call doClassCleanups() yourself.
According to docs: https://docs.python.org/3/library/unittest.html#unittest.TestCase.addClassCleanup
This was revealed with recent change in pytest (
8.2.0
):check_urlpatterns
is called beforecleanup_url_patterns
and fails (problem was hidden bypytest < 8.2.0
).doClassCleanups
can be used instead to check after-cleanup state:https://docs.python.org/3/library/unittest.html#unittest.TestCase.doClassCleanups
Fixes: https://github.com/encode/django-rest-framework/issues/9399