diff --git a/pyproject.toml b/pyproject.toml index 9605bfa1..b0279240 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -54,7 +54,7 @@ from = 'src' include = 'pysonar_scanner' [tool.poetry.scripts] -pysonar = 'pysonar_scanner.__main__:scan' +pysonar = 'pysonar_scanner.__main__:main' [[tool.poetry.source]] name = 'jfrog-server' diff --git a/src/pysonar_scanner/__main__.py b/src/pysonar_scanner/__main__.py index 786ae8f4..812aa068 100644 --- a/src/pysonar_scanner/__main__.py +++ b/src/pysonar_scanner/__main__.py @@ -41,6 +41,10 @@ from pysonar_scanner.scannerengine import ScannerEngine, ScannerEngineProvisioner +def main(): + exit(scan()) + + def scan(): try: return do_scan() diff --git a/tests/unit/test_main.py b/tests/unit/test_main.py index c2deff85..efae44b6 100644 --- a/tests/unit/test_main.py +++ b/tests/unit/test_main.py @@ -22,7 +22,7 @@ from pyfakefs import fake_filesystem_unittest as pyfakefs -from pysonar_scanner.__main__ import scan, check_version, create_jre +from pysonar_scanner.__main__ import scan, main, check_version, create_jre from pysonar_scanner.api import SQVersion, SonarQubeApi from pysonar_scanner.cache import Cache from pysonar_scanner.configuration.configuration_loader import ConfigurationLoader @@ -91,6 +91,12 @@ def test_scan_with_exception(self, load_mock): exitcode = scan() self.assertEqual(1, exitcode) + def test_main_with_exitcode_not_zero(self): + with patch("pysonar_scanner.__main__.scan", return_value=42): + with self.assertRaises(SystemExit) as main_exit: + main() + self.assertEqual(main_exit.exception.code, 42) + def test_version_check_outdated_sonarqube(self): sq_cloud_api = sq_api_utils.get_sq_server() sq_cloud_api.get_analysis_version = Mock(return_value=SQVersion.from_str("9.9.9"))