Skip to content

Commit

Permalink
0.2.19
Browse files Browse the repository at this point in the history
  • Loading branch information
smythi93 committed Jul 25, 2024
1 parent f16e8ef commit 7b70874
Showing 1 changed file with 11 additions and 42 deletions.
53 changes: 11 additions & 42 deletions src/sflkit/runners/resources/pytest_main.py
Original file line number Diff line number Diff line change
@@ -1,21 +1,12 @@
import os
import sys
from typing import Optional, Union, List, Sequence

# noinspection PyPackageRequirements
from _pytest._code import ExceptionInfo

# noinspection PyPackageRequirements
from _pytest._io import TerminalWriter
from typing import Union

# noinspection PyPackageRequirements
from _pytest.config import (
ExitCode,
_prepareconfig,
ConftestImportFailure,
UsageError,
filter_traceback_for_conftest_import_failure,
_PluggyPlugin,
)


Expand All @@ -30,9 +21,9 @@ def pytest_collection_finish(session):


def main(
args: Optional[Union[List[str], "os.PathLike[str]"]] = None,
plugins: Optional[Sequence[Union[str, _PluggyPlugin]]] = None,
) -> Union[int, ExitCode]:
args=None,
plugins=None,
) -> int:
"""Perform an in-process test run.
:param args: List of command line arguments.
Expand All @@ -43,40 +34,18 @@ def main(
try:
try:
config = _prepareconfig(args, plugins)
except ConftestImportFailure as e:
exc_info = ExceptionInfo.from_exc_info(e.excinfo)
tw = TerminalWriter(sys.stderr)
tw.line(f"ImportError while loading conftest '{e.path}'.", red=True)
exc_info.traceback = exc_info.traceback.filter(
filter_traceback_for_conftest_import_failure
)
exc_repr = (
exc_info.getrepr(style="short", chain=False)
if exc_info.traceback
else exc_info.exconly()
)
formatted_tb = str(exc_repr)
for line in formatted_tb.splitlines():
tw.line(line.rstrip(), red=True)
return ExitCode.USAGE_ERROR
except ConftestImportFailure:
return 4
else:
try:
config.hook.pytest_collection_finish = pytest_collection_finish
ret: Union[ExitCode, int] = config.hook.pytest_cmdline_main(
config=config
)
try:
return ExitCode(ret)
except ValueError:
return ret
ret = config.hook.pytest_cmdline_main(config=config)
return ret
finally:
config._ensure_unconfigure()
except UsageError as e:
tw = TerminalWriter(sys.stderr)
for msg in e.args:
tw.line(f"ERROR: {msg}\n", red=True)
return ExitCode.USAGE_ERROR
except UsageError:
return 4


if __name__ == "__main__":
main(sys.argv[1:])
exit(main(sys.argv[1:]))

0 comments on commit 7b70874

Please sign in to comment.