tests/test_testing.py::TestUrlPatternTestCase::test_urlpatterns fails against pytest 8.2.0:
(base) [builder@localhost django-rest-framework]$ python runtests.py tests/test_testing.py::TestUrlPatternTestCase::test_urlpatterns -v
max_value in DecimalField should be Decimal type.
min_value in DecimalField should be Decimal type.
================================ test session starts =================================
platform linux -- Python 3.12.2, pytest-8.2.0, pluggy-1.5.0 -- /usr/src/RPM/BUILD/django-rest-framework/.tox/venvs/base/bin/python
cachedir: .pytest_cache
django: version: 5.0.4
rootdir: /usr/src/RPM/BUILD/django-rest-framework
configfile: setup.cfg
plugins: cov-4.1.0, django-4.8.0
collected 1 item
tests/test_testing.py::TestUrlPatternTestCase::test_urlpatterns PASSED [100%]
tests/test_testing.py::TestUrlPatternTestCase::test_urlpatterns ERROR [100%]
======================================= ERRORS =======================================
____________ ERROR at teardown of TestUrlPatternTestCase.test_urlpatterns ____________
tests/test_testing.py:323: in check_urlpatterns
assert urlpatterns is not cls.urlpatterns
E AssertionError: assert [<URLPattern ''>] is not [<URLPattern ''>]
E + where [<URLPattern ''>] = <class 'tests.test_testing.TestUrlPatternTestCase'>.urlpatterns
------------------------------- Captured stderr setup --------------------------------
Creating test database for alias 'default'...
Creating test database for alias 'secondary'...
------------------------------ Captured stderr teardown ------------------------------
Destroying test database for alias 'default'...
Destroying test database for alias 'secondary'...
================================== warnings summary ==================================
.tox/venvs/base/lib/python3/site-packages/_pytest/config/__init__.py:1448
/usr/src/RPM/BUILD/django-rest-framework/.tox/venvs/base/lib/python3/site-packages/_pytest/config/__init__.py:1448: PytestConfigWarning: Unknown config option: testspath
self._warn_or_fail_if_strict(f"Unknown config option: {key}\n")
-- Docs: https://docs.pytest.org/en/stable/how-to/capture-warnings.html
============================== short test summary info ===============================
ERROR tests/test_testing.py::TestUrlPatternTestCase::test_urlpatterns - AssertionError: assert [<URLPattern ''>] is not [<URLPattern ''>]
======================= 1 passed, 1 warning, 1 error in 0.63s ========================
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.
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).
check_urlpatterns is called before cleanup_url_patterns and fails (problem was hidden by pytest < 8.2.0).
tests/test_testing.py::TestUrlPatternTestCase::test_urlpatterns
fails againstpytest 8.2.0
:This was revealed with recent change in pytest (
8.2.0
):This is actual problem of the test.
https://docs.python.org/3/library/unittest.html#unittest.TestCase.addClassCleanup
check_urlpatterns
is called beforecleanup_url_patterns
and fails (problem was hidden bypytest < 8.2.0
).