Merge pull request #3792 from decisio/pr-3788-fix-teardown-exception
Pr 3788 fix teardown exception
This commit is contained in:
commit
5d3c5123f8
|
@ -0,0 +1 @@
|
|||
Fix ``AttributeError`` during teardown of ``TestCase`` subclasses which raise an exception during ``__init__``.
|
|
@ -69,6 +69,7 @@ class UnitTestCase(Class):
|
|||
class TestCaseFunction(Function):
|
||||
nofuncargs = True
|
||||
_excinfo = None
|
||||
_testcase = None
|
||||
|
||||
def setup(self):
|
||||
self._testcase = self.parent.obj(self.name)
|
||||
|
|
|
@ -989,3 +989,24 @@ def test_usefixtures_marker_on_unittest(base, testdir):
|
|||
|
||||
result = testdir.runpytest("-s")
|
||||
result.assert_outcomes(passed=2)
|
||||
|
||||
|
||||
def test_testcase_handles_init_exceptions(testdir):
|
||||
"""
|
||||
Regression test to make sure exceptions in the __init__ method are bubbled up correctly.
|
||||
See https://github.com/pytest-dev/pytest/issues/3788
|
||||
"""
|
||||
testdir.makepyfile(
|
||||
"""
|
||||
from unittest import TestCase
|
||||
import pytest
|
||||
class MyTestCase(TestCase):
|
||||
def __init__(self, *args, **kwargs):
|
||||
raise Exception("should raise this exception")
|
||||
def test_hello(self):
|
||||
pass
|
||||
"""
|
||||
)
|
||||
result = testdir.runpytest()
|
||||
assert "should raise this exception" in result.stdout.str()
|
||||
assert "ERROR at teardown of MyTestCase.test_hello" not in result.stdout.str()
|
||||
|
|
Loading…
Reference in New Issue