|
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