Spaces:
Sleeping
Sleeping
from __future__ import annotations | |
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 | |
import pytest | |
def pytest_addoption(parser: Parser) -> None: | |
group = parser.getgroup("debugconfig") | |
group.addoption( | |
"--setupplan", | |
"--setup-plan", | |
action="store_true", | |
help="Show what fixtures and tests would be executed but " | |
"don't execute anything", | |
) | |
def pytest_fixture_setup( | |
fixturedef: FixtureDef[object], request: SubRequest | |
) -> object | None: | |
# Will return a dummy fixture if the setuponly option is provided. | |
if request.config.option.setupplan: | |
my_cache_key = fixturedef.cache_key(request) | |
fixturedef.cached_result = (None, my_cache_key, None) | |
return fixturedef.cached_result | |
return None | |
def pytest_cmdline_main(config: Config) -> int | ExitCode | None: | |
if config.option.setupplan: | |
config.option.setuponly = True | |
config.option.setupshow = True | |
return None | |