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

1from pathlib import Path 

2 

3from pytest import Config, Parser, PytestPluginManager 

4 

5from pytest_gitlab_code_quality.plugin import GitlabCodeQualityReportPlugin 

6from pytest_gitlab_code_quality.recorder import ViolationRecorder 

7 

8 

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 ) 

16 

17 

18def pytest_configure(config: Config) -> None: 

19 report_path = config.getoption("gitlab_code_quality_report") 

20 if report_path is None: 

21 return 

22 

23 file = Path(str(report_path)).open("w") # noqa: SIM115 

24 recorder = ViolationRecorder(file) 

25 recorder.prepare() 

26 plugin = GitlabCodeQualityReportPlugin(recorder, config.rootpath) 

27 

28 _ = config.pluginmanager.register(plugin, "gitlab_code_quality")