Skip to content

Commit 3278249

Browse files
committed
Update clear_exception_traceback fixture
1 parent e711e93 commit 3278249

File tree

1 file changed

+13
-1
lines changed

1 file changed

+13
-1
lines changed

tests/conftest.py

+13-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
from typing import TYPE_CHECKING, Any, cast
2222
from unittest.mock import AsyncMock, MagicMock, Mock, _patch, patch
2323

24+
import _pytest.python_api
2425
from aiohttp import client, web_app
2526
from aiohttp.resolver import AsyncResolver
2627
from aiohttp.test_utils import (
@@ -355,22 +356,33 @@ def caplog_fixture(caplog: pytest.LogCaptureFixture) -> pytest.LogCaptureFixture
355356
@pytest.fixture(autouse=True)
356357
def clear_exception_traceback(request: pytest.FixtureRequest) -> Generator[None]:
357358
"""Clear exception traceback after each test."""
358-
exceptions = []
359+
exceptions: list[BaseException] = []
360+
raises_ctx: list[_pytest.python_api.RaisesContext] = []
359361
for fixture_name in request.fixturenames:
360362
if fixture_name not in (
363+
"doorbell_state_side_effect",
361364
"error",
362365
"exc",
363366
"exception",
367+
"expected_result",
368+
"raises",
369+
"side_eff",
364370
"side_effect",
365371
"sideeffect",
366372
):
367373
continue
368374
if isinstance(request.getfixturevalue(fixture_name), BaseException):
369375
exceptions.append(request.getfixturevalue(fixture_name))
376+
if isinstance(
377+
request.getfixturevalue(fixture_name), _pytest.python_api.RaisesContext
378+
):
379+
raises_ctx.append(request.getfixturevalue(fixture_name))
370380

371381
yield
372382
for ex in exceptions:
373383
ex.__traceback__ = None
384+
for ctx in raises_ctx:
385+
ctx.excinfo = None
374386

375387

376388
@pytest.fixture(autouse=True, scope="module")

0 commit comments

Comments
 (0)