Coverage for src/pytest_gitlab_code_quality/__init__.py: 93%
15 statements
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-03 22:19 +0200
« prev ^ index » next coverage.py v7.4.4, created at 2024-04-03 22:19 +0200
1from pathlib import Path
3from pytest import Config, Parser, PytestPluginManager
5from pytest_gitlab_code_quality.plugin import GitlabCodeQualityReportPlugin
6from pytest_gitlab_code_quality.recorder import ViolationRecorder
9def pytest_addoption(parser: Parser, pluginmanager: PytestPluginManager) -> None:
10 parser.addoption(
11 "--gitlab-code-quality-report",
12 default="pytest-warnings.json",
13 required=False,
14 help="Outputs warnings in GitLabs Code Quality Report file.",
15 )
18def pytest_configure(config: Config) -> None:
19 report_path = config.getoption("gitlab_code_quality_report")
20 if report_path is None:
21 return
23 file = Path(str(report_path)).open("w") # noqa: SIM115
24 recorder = ViolationRecorder(file)
25 recorder.prepare()
26 plugin = GitlabCodeQualityReportPlugin(recorder, config.rootpath)
28 _ = config.pluginmanager.register(plugin, "gitlab_code_quality")