/opt/cloudlinux/venv/lib/python3.11/site-packages/_pytest
from typing import Generator from typing import Optional from typing import Union import pytest from _pytest._io.saferepr import saferepr from _pytest.config import Config from _pytest.config import ExitCode from _pytest.config.argparsing import Parser from _pytest.fixtures import FixtureDef from _pytest.fixtures import SubRequest from _pytest.scope import Scope def pytest_addoption(parser: Parser) -> None: group = parser.getgroup("debugconfig") group.addoption( "--setuponly", "--setup-only", action="store_true", help="Only setup fixtures, do not execute tests", ) group.addoption( "--setupshow", "--setup-show", action="store_true", help="Show setup of fixtures while executing tests", ) @pytest.hookimpl(hookwrapper=True) def pytest_fixture_setup( fixturedef: FixtureDef[object], request: SubRequest ) -> Generator[None, None, None]: yield if request.config.option.setupshow: if hasattr(request, "param"): # Save the fixture parameter so ._show_fixture_action() can # display it now and during the teardown (in .finish()). if fixturedef.ids: if callable(fixturedef.ids): param = fixturedef.ids(request.param) else: param = fixturedef.ids[request.param_index] else: param = request.param fixturedef.cached_param = param # type: ignore[attr-defined] _show_fixture_action(fixturedef, "SETUP") def pytest_fixture_post_finalizer(fixturedef: FixtureDef[object]) -> None: if fixturedef.cached_result is not None: config = fixturedef._fixturemanager.config if config.option.setupshow: _show_fixture_action(fixturedef, "TEARDOWN") if hasattr(fixturedef, "cached_param"): del fixturedef.cached_param # type: ignore[attr-defined] def _show_fixture_action(fixturedef: FixtureDef[object], msg: str) -> None: config = fixturedef._fixturemanager.config capman = config.pluginmanager.getplugin("capturemanager") if capman: capman.suspend_global_capture() tw = config.get_terminal_writer() tw.line() # Use smaller indentation the higher the scope: Session = 0, Package = 1, etc. scope_indent = list(reversed(Scope)).index(fixturedef._scope) tw.write(" " * 2 * scope_indent) tw.write( "{step} {scope} {fixture}".format( step=msg.ljust(8), # align the output to TEARDOWN scope=fixturedef.scope[0].upper(), fixture=fixturedef.argname, ) ) if msg == "SETUP": deps = sorted(arg for arg in fixturedef.argnames if arg != "request") if deps: tw.write(" (fixtures used: {})".format(", ".join(deps))) if hasattr(fixturedef, "cached_param"): tw.write(f"[{saferepr(fixturedef.cached_param, maxsize=42)}]") # type: ignore[attr-defined] tw.flush() if capman: capman.resume_global_capture() @pytest.hookimpl(tryfirst=True) def pytest_cmdline_main(config: Config) -> Optional[Union[int, ExitCode]]: if config.option.setuponly: config.option.setupshow = True return None
.
Edit
..
Edit
__init__.py
Edit
__pycache__
Edit
_argcomplete.py
Edit
_code
Edit
_io
Edit
_py
Edit
_version.py
Edit
assertion
Edit
cacheprovider.py
Edit
capture.py
Edit
compat.py
Edit
config
Edit
debugging.py
Edit
deprecated.py
Edit
doctest.py
Edit
faulthandler.py
Edit
fixtures.py
Edit
freeze_support.py
Edit
helpconfig.py
Edit
hookspec.py
Edit
junitxml.py
Edit
legacypath.py
Edit
logging.py
Edit
main.py
Edit
mark
Edit
monkeypatch.py
Edit
nodes.py
Edit
nose.py
Edit
outcomes.py
Edit
pastebin.py
Edit
pathlib.py
Edit
py.typed
Edit
pytester.py
Edit
pytester_assertions.py
Edit
python.py
Edit
python_api.py
Edit
python_path.py
Edit
recwarn.py
Edit
reports.py
Edit
runner.py
Edit
scope.py
Edit
setuponly.py
Edit
setupplan.py
Edit
skipping.py
Edit
stash.py
Edit
stepwise.py
Edit
terminal.py
Edit
threadexception.py
Edit
timing.py
Edit
tmpdir.py
Edit
unittest.py
Edit
unraisableexception.py
Edit
warning_types.py
Edit
warnings.py
Edit