fix(test): Mock audit info codeartifact-config-ds (#2210)

This commit is contained in:
Pepe Fagoaga
2023-04-14 14:25:45 +02:00
committed by GitHub
parent 861fb1f54b
commit 44458e2a97
3 changed files with 101 additions and 21 deletions

View File

@@ -1,9 +1,10 @@
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.codeartifact.codeartifact_service import (
CodeArtifact,
LatestPackageVersionStatus,
@@ -13,6 +14,8 @@ from prowler.providers.aws.services.codeartifact.codeartifact_service import (
# 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
@@ -96,9 +99,32 @@ def mock_generate_regional_clients(service, audit_info):
new=mock_generate_regional_clients,
)
class Test_CodeArtifact_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 CodeArtifact Client
def test__get_client__(self):
codeartifact = CodeArtifact(current_audit_info)
codeartifact = CodeArtifact(self.set_mocked_audit_info())
assert (
codeartifact.regional_clients[AWS_REGION].__class__.__name__
== "CodeArtifact"
@@ -106,18 +132,17 @@ class Test_CodeArtifact_Service:
# Test CodeArtifact Session
def test__get_session__(self):
codeartifact = CodeArtifact(current_audit_info)
codeartifact = CodeArtifact(self.set_mocked_audit_info())
assert codeartifact.session.__class__.__name__ == "Session"
# Test CodeArtifact Service
def test__get_service__(self):
codeartifact = CodeArtifact(current_audit_info)
codeartifact = CodeArtifact(self.set_mocked_audit_info())
assert codeartifact.service == "codeartifact"
def test__list_repositories__(self):
# Set partition for the service
current_audit_info.audited_partition = "aws"
codeartifact = CodeArtifact(current_audit_info)
codeartifact = CodeArtifact(self.set_mocked_audit_info())
assert len(codeartifact.repositories) == 1
assert codeartifact.repositories

View File

@@ -1,22 +1,48 @@
from unittest import mock
from boto3 import client
from boto3 import client, session
from moto import mock_config
from prowler.providers.aws.lib.audit_info.models import AWS_Audit_Info
AWS_REGION = "us-east-1"
AWS_ACCOUNT_NUMBER = "123456789012"
class Test_config_recorder_all_regions_enabled:
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_config
def test_config_no_recorders(self):
from prowler.providers.aws.lib.audit_info.audit_info import current_audit_info
from prowler.providers.aws.services.config.config_service import Config
current_audit_info.audited_partition = "aws"
current_audit_info.audited_account = "012345678912"
current_audit_info.audited_regions = ["eu-west-1", "us-east-1"]
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.config.config_recorder_all_regions_enabled.config_recorder_all_regions_enabled.config_client",
new=Config(current_audit_info),
):
@@ -41,13 +67,15 @@ class Test_config_recorder_all_regions_enabled:
config_client.put_configuration_recorder(
ConfigurationRecorder={"name": "default", "roleARN": "somearn"}
)
from prowler.providers.aws.lib.audit_info.audit_info import current_audit_info
from prowler.providers.aws.services.config.config_service import Config
current_audit_info.audited_partition = "aws"
current_audit_info = self.set_mocked_audit_info()
current_audit_info.audited_regions = [AWS_REGION]
with mock.patch(
"prowler.providers.aws.lib.audit_info.audit_info.current_audit_info",
new=current_audit_info,
), mock.patch(
"prowler.providers.aws.services.config.config_recorder_all_regions_enabled.config_recorder_all_regions_enabled.config_client",
new=Config(current_audit_info),
):
@@ -82,13 +110,15 @@ class Test_config_recorder_all_regions_enabled:
DeliveryChannel={"name": "testchannel", "s3BucketName": "somebucket"}
)
config_client.start_configuration_recorder(ConfigurationRecorderName="default")
from prowler.providers.aws.lib.audit_info.audit_info import current_audit_info
from prowler.providers.aws.services.config.config_service import Config
current_audit_info.audited_partition = "aws"
current_audit_info = self.set_mocked_audit_info()
current_audit_info.audited_regions = [AWS_REGION]
with mock.patch(
"prowler.providers.aws.lib.audit_info.audit_info.current_audit_info",
new=current_audit_info,
), mock.patch(
"prowler.providers.aws.services.config.config_recorder_all_regions_enabled.config_recorder_all_regions_enabled.config_client",
new=Config(current_audit_info),
):

View File

@@ -2,10 +2,11 @@ from datetime import datetime
from unittest.mock import patch
import botocore
from boto3 import session
from moto import mock_ds
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.directoryservice.directoryservice_service import (
AuthenticationProtocol,
CertificateState,
@@ -18,6 +19,8 @@ from prowler.providers.aws.services.directoryservice.directoryservice_service im
# 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
@@ -115,10 +118,33 @@ def mock_generate_regional_clients(service, audit_info):
new=mock_generate_regional_clients,
)
class Test_DirectoryService_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 DirectoryService Client
@mock_ds
def test__get_client__(self):
directoryservice = DirectoryService(current_audit_info)
directoryservice = DirectoryService(self.set_mocked_audit_info())
assert (
directoryservice.regional_clients[AWS_REGION].__class__.__name__
== "DirectoryService"
@@ -127,20 +153,19 @@ class Test_DirectoryService_Service:
# Test DirectoryService Session
@mock_ds
def test__get_session__(self):
directoryservice = DirectoryService(current_audit_info)
directoryservice = DirectoryService(self.set_mocked_audit_info())
assert directoryservice.session.__class__.__name__ == "Session"
# Test DirectoryService Service
@mock_ds
def test__get_service__(self):
directoryservice = DirectoryService(current_audit_info)
directoryservice = DirectoryService(self.set_mocked_audit_info())
assert directoryservice.service == "ds"
@mock_ds
def test__describe_directories__(self):
# Set partition for the service
current_audit_info.audited_partition = "aws"
directoryservice = DirectoryService(current_audit_info)
directoryservice = DirectoryService(self.set_mocked_audit_info())
# __describe_directories__
assert directoryservice.directories["d-12345a1b2"].id == "d-12345a1b2"