From 5532cb95a25ec0b30ef5a3134ecf2b73329411c3 Mon Sep 17 00:00:00 2001 From: Pepe Fagoaga Date: Fri, 14 Apr 2023 14:06:07 +0200 Subject: [PATCH] fix(test): Mock audit info in appstream and autoscaling (#2209) --- .../appstream/appstream_service_test.py | 40 ++++++++++--- ...d_secrets_ec2_launch_configuration_test.py | 58 +++++++++++++++---- 2 files changed, 78 insertions(+), 20 deletions(-) diff --git a/tests/providers/aws/services/appstream/appstream_service_test.py b/tests/providers/aws/services/appstream/appstream_service_test.py index 77fd07a8..b599b075 100644 --- a/tests/providers/aws/services/appstream/appstream_service_test.py +++ b/tests/providers/aws/services/appstream/appstream_service_test.py @@ -1,14 +1,15 @@ from unittest.mock import patch import botocore +from boto3 import session from moto.core import DEFAULT_ACCOUNT_ID -from prowler.providers.aws.lib.audit_info.audit_info import current_audit_info +from prowler.providers.aws.lib.audit_info.models import AWS_Audit_Info from prowler.providers.aws.services.appstream.appstream_service import AppStream # Mock Test Region AWS_REGION = "eu-west-1" - +AWS_ACCOUNT_NUMBER = "123456789012" # Mocking Access Analyzer Calls make_api_call = botocore.client.BaseClient._make_api_call @@ -62,25 +63,47 @@ def mock_generate_regional_clients(service, audit_info): new=mock_generate_regional_clients, ) class Test_AppStream_Service: + def set_mocked_audit_info(self): + audit_info = AWS_Audit_Info( + session_config=None, + original_session=None, + audit_session=session.Session( + profile_name=None, + botocore_session=None, + ), + audited_account=AWS_ACCOUNT_NUMBER, + audited_user_id=None, + audited_partition="aws", + audited_identity_arn=None, + profile=None, + profile_region=None, + credentials=None, + assumed_role_info=None, + audited_regions=["us-east-1", "eu-west-1"], + organizations_metadata=None, + audit_resources=None, + ) + + return audit_info + # Test AppStream Client def test__get_client__(self): - appstream = AppStream(current_audit_info) + appstream = AppStream(self.set_mocked_audit_info()) assert appstream.regional_clients[AWS_REGION].__class__.__name__ == "AppStream" # Test AppStream Session def test__get_session__(self): - appstream = AppStream(current_audit_info) + appstream = AppStream(self.set_mocked_audit_info()) assert appstream.session.__class__.__name__ == "Session" # Test AppStream Session def test__get_service__(self): - appstream = AppStream(current_audit_info) + appstream = AppStream(self.set_mocked_audit_info()) assert appstream.service == "appstream" def test__describe_fleets__(self): # Set partition for the service - current_audit_info.audited_partition = "aws" - appstream = AppStream(current_audit_info) + appstream = AppStream(self.set_mocked_audit_info()) assert len(appstream.fleets) == 2 assert ( @@ -107,8 +130,7 @@ class Test_AppStream_Service: def test__list_tags_for_resource__(self): # Set partition for the service - current_audit_info.audited_partition = "aws" - appstream = AppStream(current_audit_info) + appstream = AppStream(self.set_mocked_audit_info()) assert len(appstream.fleets) == 2 assert appstream.fleets[0].tags == [{"test": "test"}] diff --git a/tests/providers/aws/services/autoscaling/autoscaling_find_secrets_ec2_launch_configuration/autoscaling_find_secrets_ec2_launch_configuration_test.py b/tests/providers/aws/services/autoscaling/autoscaling_find_secrets_ec2_launch_configuration/autoscaling_find_secrets_ec2_launch_configuration_test.py index 28495cae..1817b0de 100644 --- a/tests/providers/aws/services/autoscaling/autoscaling_find_secrets_ec2_launch_configuration/autoscaling_find_secrets_ec2_launch_configuration_test.py +++ b/tests/providers/aws/services/autoscaling/autoscaling_find_secrets_ec2_launch_configuration/autoscaling_find_secrets_ec2_launch_configuration_test.py @@ -1,25 +1,53 @@ from unittest import mock -from boto3 import client +from boto3 import client, session from moto import mock_autoscaling +from prowler.providers.aws.lib.audit_info.models import AWS_Audit_Info + AWS_REGION = "us-east-1" +AWS_ACCOUNT_NUMBER = "123456789012" class Test_autoscaling_find_secrets_ec2_launch_configuration: + def set_mocked_audit_info(self): + audit_info = AWS_Audit_Info( + session_config=None, + original_session=None, + audit_session=session.Session( + profile_name=None, + botocore_session=None, + ), + audited_account=AWS_ACCOUNT_NUMBER, + audited_user_id=None, + audited_partition="aws", + audited_identity_arn=None, + profile=None, + profile_region=None, + credentials=None, + assumed_role_info=None, + audited_regions=["us-east-1", "eu-west-1"], + organizations_metadata=None, + audit_resources=None, + ) + + return audit_info + @mock_autoscaling def test_no_autoscaling(self): autoscaling_client = client("autoscaling", region_name=AWS_REGION) autoscaling_client.launch_configurations = [] - from prowler.providers.aws.lib.audit_info.audit_info import current_audit_info from prowler.providers.aws.services.autoscaling.autoscaling_service import ( AutoScaling, ) - current_audit_info.audited_partition = "aws" + current_audit_info = self.set_mocked_audit_info() with mock.patch( + "prowler.providers.aws.lib.audit_info.audit_info.current_audit_info", + new=current_audit_info, + ), mock.patch( "prowler.providers.aws.services.autoscaling.autoscaling_find_secrets_ec2_launch_configuration.autoscaling_find_secrets_ec2_launch_configuration.autoscaling_client", new=AutoScaling(current_audit_info), ): @@ -46,14 +74,16 @@ class Test_autoscaling_find_secrets_ec2_launch_configuration: UserData="This is some user_data", ) - from prowler.providers.aws.lib.audit_info.audit_info import current_audit_info from prowler.providers.aws.services.autoscaling.autoscaling_service import ( AutoScaling, ) - current_audit_info.audited_partition = "aws" + current_audit_info = self.set_mocked_audit_info() with mock.patch( + "prowler.providers.aws.lib.audit_info.audit_info.current_audit_info", + new=current_audit_info, + ), mock.patch( "prowler.providers.aws.services.autoscaling.autoscaling_find_secrets_ec2_launch_configuration.autoscaling_find_secrets_ec2_launch_configuration.autoscaling_client", new=AutoScaling(current_audit_info), ): @@ -85,14 +115,16 @@ class Test_autoscaling_find_secrets_ec2_launch_configuration: UserData="DB_PASSWORD=foobar123", ) - from prowler.providers.aws.lib.audit_info.audit_info import current_audit_info from prowler.providers.aws.services.autoscaling.autoscaling_service import ( AutoScaling, ) - current_audit_info.audited_partition = "aws" + current_audit_info = self.set_mocked_audit_info() with mock.patch( + "prowler.providers.aws.lib.audit_info.audit_info.current_audit_info", + new=current_audit_info, + ), mock.patch( "prowler.providers.aws.services.autoscaling.autoscaling_find_secrets_ec2_launch_configuration.autoscaling_find_secrets_ec2_launch_configuration.autoscaling_client", new=AutoScaling(current_audit_info), ): @@ -129,14 +161,16 @@ class Test_autoscaling_find_secrets_ec2_launch_configuration: UserData=secrets, ) - from prowler.providers.aws.lib.audit_info.audit_info import current_audit_info from prowler.providers.aws.services.autoscaling.autoscaling_service import ( AutoScaling, ) - current_audit_info.audited_partition = "aws" + current_audit_info = self.set_mocked_audit_info() with mock.patch( + "prowler.providers.aws.lib.audit_info.audit_info.current_audit_info", + new=current_audit_info, + ), mock.patch( "prowler.providers.aws.services.autoscaling.autoscaling_find_secrets_ec2_launch_configuration.autoscaling_find_secrets_ec2_launch_configuration.autoscaling_client", new=AutoScaling(current_audit_info), ): @@ -167,14 +201,16 @@ class Test_autoscaling_find_secrets_ec2_launch_configuration: SecurityGroups=["default", "default2"], ) - from prowler.providers.aws.lib.audit_info.audit_info import current_audit_info from prowler.providers.aws.services.autoscaling.autoscaling_service import ( AutoScaling, ) - current_audit_info.audited_partition = "aws" + current_audit_info = self.set_mocked_audit_info() with mock.patch( + "prowler.providers.aws.lib.audit_info.audit_info.current_audit_info", + new=current_audit_info, + ), mock.patch( "prowler.providers.aws.services.autoscaling.autoscaling_find_secrets_ec2_launch_configuration.autoscaling_find_secrets_ec2_launch_configuration.autoscaling_client", new=AutoScaling(current_audit_info), ):