Merge pull request #12436 from bluetech/unittest-rerun-assertion

unittest: fix assertion errors on unittest reruns
This commit is contained in:
Ran Benita 2024-06-08 02:11:20 +03:00 committed by GitHub
commit f85289ba87
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 14 additions and 2 deletions

View File

@ -0,0 +1 @@
Fix crash with `assert testcase is not None` assertion failure when re-running unittest tests using plugins like pytest-rerunfailures. Regressed in 8.2.2.

View File

@ -223,7 +223,7 @@ class TestCaseFunction(Function):
self._explicit_tearDown()
self._explicit_tearDown = None
self._obj = None
self._instance = None
del self._instance
super().teardown()
def startTest(self, testcase: "unittest.TestCase") -> None:

View File

@ -0,0 +1,11 @@
import unittest
class MyTestCase(unittest.TestCase):
first_time = True
def test_fail_the_first_time(self) -> None:
"""Regression test for issue #12424."""
if self.first_time:
type(self).first_time = False
self.fail()

View File

@ -141,7 +141,7 @@ commands =
pytest --cov=. simple_integration.py
pytest --ds=django_settings simple_integration.py
pytest --html=simple.html simple_integration.py
pytest --reruns 5 simple_integration.py
pytest --reruns 5 simple_integration.py pytest_rerunfailures_integration.py
pytest pytest_anyio_integration.py
pytest pytest_asyncio_integration.py
pytest pytest_mock_integration.py