/opt/cloudlinux/venv/lib/python3.11/site-packages/_pytest
NameSizeModeActions
assertion/-0755rm
config/-0755rm
mark/-0755rm
_code/-0755rm
_io/-0755rm
_py/-0755rm
__pycache__/-0755rm
cacheprovider.py213920644editdlrm
capture.py347370644editdlrm
compat.py132000644editdlrm
debugging.py134980644editdlrm
deprecated.py54870644editdlrm
doctest.py259610644editdlrm
faulthandler.py31140644editdlrm
fixtures.py670850644editdlrm
freeze_support.py13390644editdlrm
helpconfig.py85380644editdlrm
hookspec.py325580644editdlrm
junitxml.py257160644editdlrm
legacypath.py169290644editdlrm
logging.py340310644editdlrm
main.py324910644editdlrm
monkeypatch.py148570644editdlrm
nodes.py265590644editdlrm
nose.py16880644editdlrm
outcomes.py102560644editdlrm
pastebin.py39490644editdlrm
pathlib.py258240644editdlrm
py.typed00644editdlrm
pytester.py619710644editdlrm
pytester_assertions.py23270644editdlrm
python.py711550644editdlrm
python_api.py384000644editdlrm
python_path.py7090644editdlrm
recwarn.py109300644editdlrm
reports.py208400644editdlrm
runner.py184470644editdlrm
scope.py28820644editdlrm
setuponly.py32610644editdlrm
setupplan.py12140644editdlrm
skipping.py102000644editdlrm
stash.py30550644editdlrm
stepwise.py47140644editdlrm
terminal.py535090644editdlrm
threadexception.py29150644editdlrm
timing.py3750644editdlrm
tmpdir.py117080644editdlrm
unittest.py148090644editdlrm
unraisableexception.py31910644editdlrm
warnings.py50700644editdlrm
warning_types.py44740644editdlrm
_argcomplete.py37940644editdlrm
_version.py1600644editdlrm
__init__.py3560644editdlrm
Edit: /opt/cloudlinux/venv/lib/python3.11/site-packages/_pytest/unraisableexception.py (3191B)
import sys import traceback import warnings from types import TracebackType from typing import Any from typing import Callable from typing import Generator from typing import Optional from typing import Type import pytest # Copied from cpython/Lib/test/support/__init__.py, with modifications. class catch_unraisable_exception: """Context manager catching unraisable exception using sys.unraisablehook. Storing the exception value (cm.unraisable.exc_value) creates a reference cycle. The reference cycle is broken explicitly when the context manager exits. Storing the object (cm.unraisable.object) can resurrect it if it is set to an object which is being finalized. Exiting the context manager clears the stored object. Usage: with catch_unraisable_exception() as cm: # code creating an "unraisable exception" ... # check the unraisable exception: use cm.unraisable ... # cm.unraisable attribute no longer exists at this point # (to break a reference cycle) """ def __init__(self) -> None: self.unraisable: Optional["sys.UnraisableHookArgs"] = None self._old_hook: Optional[Callable[["sys.UnraisableHookArgs"], Any]] = None def _hook(self, unraisable: "sys.UnraisableHookArgs") -> None: # Storing unraisable.object can resurrect an object which is being # finalized. Storing unraisable.exc_value creates a reference cycle. self.unraisable = unraisable def __enter__(self) -> "catch_unraisable_exception": self._old_hook = sys.unraisablehook sys.unraisablehook = self._hook return self def __exit__( self, exc_type: Optional[Type[BaseException]], exc_val: Optional[BaseException], exc_tb: Optional[TracebackType], ) -> None: assert self._old_hook is not None sys.unraisablehook = self._old_hook self._old_hook = None del self.unraisable def unraisable_exception_runtest_hook() -> Generator[None, None, None]: with catch_unraisable_exception() as cm: yield if cm.unraisable: if cm.unraisable.err_msg is not None: err_msg = cm.unraisable.err_msg else: err_msg = "Exception ignored in" msg = f"{err_msg}: {cm.unraisable.object!r}\n\n" msg += "".join( traceback.format_exception( cm.unraisable.exc_type, cm.unraisable.exc_value, cm.unraisable.exc_traceback, ) ) warnings.warn(pytest.PytestUnraisableExceptionWarning(msg)) @pytest.hookimpl(hookwrapper=True, tryfirst=True) def pytest_runtest_setup() -> Generator[None, None, None]: yield from unraisable_exception_runtest_hook() @pytest.hookimpl(hookwrapper=True, tryfirst=True) def pytest_runtest_call() -> Generator[None, None, None]: yield from unraisable_exception_runtest_hook() @pytest.hookimpl(hookwrapper=True, tryfirst=True) def pytest_runtest_teardown() -> Generator[None, None, None]: yield from unraisable_exception_runtest_hook()