diff --git a/prowler/providers/aws/aws_provider.py b/prowler/providers/aws/aws_provider.py index 37f41fa7e4..82d90ec61f 100644 --- a/prowler/providers/aws/aws_provider.py +++ b/prowler/providers/aws/aws_provider.py @@ -1262,7 +1262,9 @@ class AwsProvider(Provider): logger.critical( f"{error.__class__.__name__}[{error.__traceback__.tb_lineno}]: {error}" ) - raise error + if raise_on_exception: + raise error + return Connection(error=error) @staticmethod def create_sts_session( diff --git a/tests/providers/aws/aws_provider_test.py b/tests/providers/aws/aws_provider_test.py index 50dd38fb50..7f3895af23 100644 --- a/tests/providers/aws/aws_provider_test.py +++ b/tests/providers/aws/aws_provider_test.py @@ -1443,6 +1443,18 @@ aws: ) assert connection.error.code == 1015 + @mock_aws + def test_test_connection_generic_exception(self): + with patch( + "prowler.providers.aws.aws_provider.AwsProvider.setup_session", + side_effect=Exception(), + ): + connection = AwsProvider.test_connection(raise_on_exception=False) + + assert isinstance(connection, Connection) + assert not connection.is_connected + assert isinstance(connection.error, Exception) + @mock_aws def test_create_sts_session(self): current_session = session.Session()