404

[ Avaa Bypassed ]




Upload:

Command:

elspacio@18.117.230.198: ~ $
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()

Filemanager

Name Type Size Permission Actions
__pycache__ Folder 0755
_code Folder 0755
_io Folder 0755
_py Folder 0755
assertion Folder 0755
config Folder 0755
mark Folder 0755
__init__.py File 356 B 0644
_argcomplete.py File 3.71 KB 0644
_version.py File 160 B 0644
cacheprovider.py File 20.89 KB 0644
capture.py File 33.92 KB 0644
compat.py File 12.89 KB 0644
debugging.py File 13.18 KB 0644
deprecated.py File 5.36 KB 0644
doctest.py File 25.35 KB 0644
faulthandler.py File 3.04 KB 0644
fixtures.py File 65.51 KB 0644
freeze_support.py File 1.31 KB 0644
helpconfig.py File 8.34 KB 0644
hookspec.py File 31.79 KB 0644
junitxml.py File 25.11 KB 0644
legacypath.py File 16.53 KB 0644
logging.py File 33.23 KB 0644
main.py File 31.73 KB 0644
monkeypatch.py File 14.51 KB 0644
nodes.py File 25.94 KB 0644
nose.py File 1.65 KB 0644
outcomes.py File 10.02 KB 0644
pastebin.py File 3.86 KB 0644
pathlib.py File 25.22 KB 0644
py.typed File 0 B 0644
pytester.py File 60.52 KB 0644
pytester_assertions.py File 2.27 KB 0644
python.py File 69.49 KB 0644
python_api.py File 37.5 KB 0644
python_path.py File 709 B 0644
recwarn.py File 10.67 KB 0644
reports.py File 20.35 KB 0644
runner.py File 18.01 KB 0644
scope.py File 2.81 KB 0644
setuponly.py File 3.18 KB 0644
setupplan.py File 1.19 KB 0644
skipping.py File 9.96 KB 0644
stash.py File 2.98 KB 0644
stepwise.py File 4.6 KB 0644
terminal.py File 52.25 KB 0644
threadexception.py File 2.85 KB 0644
timing.py File 375 B 0644
tmpdir.py File 11.43 KB 0644
unittest.py File 14.46 KB 0644
unraisableexception.py File 3.12 KB 0644
warning_types.py File 4.37 KB 0644
warnings.py File 4.95 KB 0644