diff --git a/prowler/config/config.py b/prowler/config/config.py index f69de95ade..4eb9b07223 100644 --- a/prowler/config/config.py +++ b/prowler/config/config.py @@ -5,6 +5,7 @@ from os import getcwd import requests import yaml +from packaging import version from prowler.lib.logger import logger @@ -86,7 +87,7 @@ def check_current_version(): "https://api.github.com/repos/prowler-cloud/prowler/tags", timeout=1 ) latest_version = release_response.json()[0]["name"] - if latest_version != prowler_version: + if version.parse(latest_version) > version.parse(prowler_version): return f"{prowler_version_string} (latest is {latest_version}, upgrade for the latest features)" else: return ( diff --git a/tests/config/config_test.py b/tests/config/config_test.py index cfc319a70d..6ad5d7a0e9 100644 --- a/tests/config/config_test.py +++ b/tests/config/config_test.py @@ -15,6 +15,7 @@ from prowler.providers.aws.aws_provider import get_aws_available_regions MOCK_PROWLER_VERSION = "3.3.0" MOCK_OLD_PROWLER_VERSION = "0.0.0" +MOCK_PROWLER_MASTER_VERSION = "3.4.0" def mock_prowler_get_latest_release(_, **kwargs): @@ -344,6 +345,18 @@ class Test_Config: == f"Prowler {MOCK_OLD_PROWLER_VERSION} (latest is {MOCK_PROWLER_VERSION}, upgrade for the latest features)" ) + @mock.patch( + "prowler.config.config.requests.get", new=mock_prowler_get_latest_release + ) + @mock.patch( + "prowler.config.config.prowler_version", new=MOCK_PROWLER_MASTER_VERSION + ) + def test_check_current_version_with_master_version(self): + assert ( + check_current_version() + == f"Prowler {MOCK_PROWLER_MASTER_VERSION} (You are running the latest version, yay!)" + ) + def test_get_available_compliance_frameworks(self): compliance_frameworks = [ "cisa_aws",