|
25 | 25 | from pysonar_scanner.configuration.configuration_loader import CliConfigurationLoader
|
26 | 26 | from pysonar_scanner.configuration.properties import (
|
27 | 27 | SONAR_HOST_URL,
|
| 28 | + SONAR_PYTHON_BANDIT_REPORT_PATHS, |
| 29 | + SONAR_PYTHON_FLAKE8_REPORT_PATHS, |
| 30 | + SONAR_PYTHON_MYPY_REPORT_PATHS, |
| 31 | + SONAR_PYTHON_RUFF_REPORT_PATHS, |
28 | 32 | SONAR_REGION,
|
29 | 33 | SONAR_SCANNER_API_BASE_URL,
|
30 | 34 | SONAR_SCANNER_ARCH,
|
|
151 | 155 | SONAR_PYTHON_SKIP_UNCHANGED: True,
|
152 | 156 | SONAR_PYTHON_XUNIT_REPORT_PATH: "path/to/xunit/report",
|
153 | 157 | SONAR_PYTHON_XUNIT_SKIP_DETAILS: True,
|
| 158 | + SONAR_PYTHON_MYPY_REPORT_PATHS: "path/to/mypy/reports", |
| 159 | + SONAR_PYTHON_BANDIT_REPORT_PATHS: "path/to/bandit/reports", |
| 160 | + SONAR_PYTHON_FLAKE8_REPORT_PATHS: "path/to/flake8/reports", |
| 161 | + SONAR_PYTHON_RUFF_REPORT_PATHS: "path/to/ruff/reports", |
154 | 162 | SONAR_MODULES: "module1,module2",
|
155 | 163 | }
|
156 | 164 |
|
@@ -184,6 +192,43 @@ def test_alternative_cli_args(self):
|
184 | 192 | }
|
185 | 193 | self.assertDictEqual(configuration, expected_configuration)
|
186 | 194 |
|
| 195 | + def test_alternative_report_cli_args(self): |
| 196 | + base_args = ["myscript.py", "-t", "myToken", "--sonar-project-key", "myProjectKey"] |
| 197 | + report_args = [ |
| 198 | + "--bandit-report-paths", |
| 199 | + "path/to/bandit/reports", |
| 200 | + "--flake8-report-paths", |
| 201 | + "path/to/flake8/reports", |
| 202 | + "--mypy-report-paths", |
| 203 | + "path/to/mypy/reports", |
| 204 | + "--pylint-report-path", |
| 205 | + "path/to/pylint/report", |
| 206 | + "--coverage-report-paths", |
| 207 | + "path/to/coverage/reports", |
| 208 | + "--xunit-report-path", |
| 209 | + "path/to/xunit/report", |
| 210 | + "--ruff-report-paths", |
| 211 | + "path/to/ruff/reports", |
| 212 | + "--xunit-skip-details", |
| 213 | + ] |
| 214 | + |
| 215 | + expected_configuration = { |
| 216 | + SONAR_TOKEN: "myToken", |
| 217 | + SONAR_PROJECT_KEY: "myProjectKey", |
| 218 | + SONAR_PYTHON_BANDIT_REPORT_PATHS: "path/to/bandit/reports", |
| 219 | + SONAR_PYTHON_FLAKE8_REPORT_PATHS: "path/to/flake8/reports", |
| 220 | + SONAR_PYTHON_MYPY_REPORT_PATHS: "path/to/mypy/reports", |
| 221 | + SONAR_PYTHON_PYLINT_REPORT_PATH: "path/to/pylint/report", |
| 222 | + SONAR_PYTHON_COVERAGE_REPORT_PATHS: "path/to/coverage/reports", |
| 223 | + SONAR_PYTHON_XUNIT_REPORT_PATH: "path/to/xunit/report", |
| 224 | + SONAR_PYTHON_RUFF_REPORT_PATHS: "path/to/ruff/reports", |
| 225 | + SONAR_PYTHON_XUNIT_SKIP_DETAILS: True, |
| 226 | + } |
| 227 | + |
| 228 | + with patch("sys.argv", base_args + report_args), patch("sys.stderr", new=StringIO()): |
| 229 | + configuration = CliConfigurationLoader.load() |
| 230 | + self.assertDictEqual(configuration, expected_configuration) |
| 231 | + |
187 | 232 | def test_multiple_alias_cli_args(self):
|
188 | 233 | alternatives = [
|
189 | 234 | ["-t", "overwrittenToken", "--sonar-token", "sonarToken"],
|
@@ -328,6 +373,14 @@ def test_impossible_os_choice(self):
|
328 | 373 | "--sonar-python-xunit-report-path",
|
329 | 374 | "path/to/xunit/report",
|
330 | 375 | "--sonar-python-xunit-skip-details",
|
| 376 | + "--sonar-python-mypy-report-paths", |
| 377 | + "path/to/mypy/reports", |
| 378 | + "--sonar-python-bandit-report-paths", |
| 379 | + "path/to/bandit/reports", |
| 380 | + "--sonar-python-flake8-report-paths", |
| 381 | + "path/to/flake8/reports", |
| 382 | + "--sonar-python-ruff-report-paths", |
| 383 | + "path/to/ruff/reports", |
331 | 384 | "--sonar-modules",
|
332 | 385 | "module1,module2",
|
333 | 386 | ],
|
@@ -401,6 +454,10 @@ def test_all_cli_args(self):
|
401 | 454 | "-Dsonar.python.skipUnchanged=true",
|
402 | 455 | "-Dsonar.python.xunit.reportPath=path/to/xunit/report",
|
403 | 456 | "-Dsonar.python.xunit.skipDetails=true",
|
| 457 | + "-Dsonar.python.mypy.reportPaths=path/to/mypy/reports", |
| 458 | + "-Dsonar.python.bandit.reportPaths=path/to/bandit/reports", |
| 459 | + "-Dsonar.python.flake8.reportPaths=path/to/flake8/reports", |
| 460 | + "-Dsonar.python.ruff.reportPaths=path/to/ruff/reports", |
404 | 461 | "-Dsonar.modules=module1,module2",
|
405 | 462 | ],
|
406 | 463 | )
|
|
0 commit comments