golden hour
/opt/cloudlinux/venv/lib/python3.11/site-packages/_pytest
⬆️ Go Up
Upload
File/Folder
Size
Actions
__init__.py
356 B
Del
OK
__pycache__
-
Del
OK
_argcomplete.py
3.71 KB
Del
OK
_code
-
Del
OK
_io
-
Del
OK
_py
-
Del
OK
_version.py
160 B
Del
OK
assertion
-
Del
OK
cacheprovider.py
20.89 KB
Del
OK
capture.py
33.92 KB
Del
OK
compat.py
12.89 KB
Del
OK
config
-
Del
OK
debugging.py
13.18 KB
Del
OK
deprecated.py
5.36 KB
Del
OK
doctest.py
25.35 KB
Del
OK
faulthandler.py
3.04 KB
Del
OK
fixtures.py
65.51 KB
Del
OK
freeze_support.py
1.31 KB
Del
OK
helpconfig.py
8.34 KB
Del
OK
hookspec.py
31.79 KB
Del
OK
junitxml.py
25.11 KB
Del
OK
legacypath.py
16.53 KB
Del
OK
logging.py
33.23 KB
Del
OK
main.py
31.73 KB
Del
OK
mark
-
Del
OK
monkeypatch.py
14.51 KB
Del
OK
nodes.py
25.94 KB
Del
OK
nose.py
1.65 KB
Del
OK
outcomes.py
10.02 KB
Del
OK
pastebin.py
3.86 KB
Del
OK
pathlib.py
25.22 KB
Del
OK
py.typed
0 B
Del
OK
pytester.py
60.52 KB
Del
OK
pytester_assertions.py
2.27 KB
Del
OK
python.py
69.49 KB
Del
OK
python_api.py
37.5 KB
Del
OK
python_path.py
709 B
Del
OK
recwarn.py
10.67 KB
Del
OK
reports.py
20.35 KB
Del
OK
runner.py
18.01 KB
Del
OK
scope.py
2.81 KB
Del
OK
setuponly.py
3.18 KB
Del
OK
setupplan.py
1.19 KB
Del
OK
skipping.py
9.96 KB
Del
OK
stash.py
2.98 KB
Del
OK
stepwise.py
4.6 KB
Del
OK
terminal.py
52.25 KB
Del
OK
threadexception.py
2.85 KB
Del
OK
timing.py
375 B
Del
OK
tmpdir.py
11.43 KB
Del
OK
unittest.py
14.46 KB
Del
OK
unraisableexception.py
3.12 KB
Del
OK
warning_types.py
4.37 KB
Del
OK
warnings.py
4.95 KB
Del
OK
Edit: unraisableexception.py
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()
Save