fix(aws): Add missing resources ARN (#2453)

This commit is contained in:
Pepe Fagoaga
2023-06-06 16:56:59 +02:00
committed by GitHub
parent 86cf2cd233
commit b7bb4bbd57
5 changed files with 69 additions and 35 deletions

View File

@@ -2,15 +2,21 @@ from datetime import datetime, timedelta, timezone
from re import search
from unittest import mock
from prowler.providers.aws.services.codebuild.codebuild_service import CodebuildProject
from prowler.providers.aws.services.codebuild.codebuild_service import Project
AWS_REGION = "eu-west-1"
AWS_ACCOUNT_NUMBER = "123456789012"
class Test_codebuild_project_older_90_days:
def test_project_not_built_in_last_90_days(self):
codebuild_client = mock.MagicMock
project_name = "test-project"
project_arn = f"arn:aws:codebuild:{AWS_REGION}:{AWS_ACCOUNT_NUMBER}:project/{project_name}"
codebuild_client.projects = [
CodebuildProject(
name="test",
Project(
name=project_name,
arn=project_arn,
region="eu-west-1",
last_invoked_time=datetime.now(timezone.utc) - timedelta(days=100),
buildspec=None,
@@ -32,14 +38,20 @@ class Test_codebuild_project_older_90_days:
assert search(
"has not been invoked in the last 90 days", result[0].status_extended
)
assert result[0].resource_id == "test"
assert result[0].resource_arn == ""
assert result[0].resource_id == project_name
assert result[0].resource_arn == project_arn
def test_project_not_built(self):
codebuild_client = mock.MagicMock
project_name = "test-project"
project_arn = f"arn:aws:codebuild:{AWS_REGION}:{AWS_ACCOUNT_NUMBER}:project/{project_name}"
codebuild_client.projects = [
CodebuildProject(
name="test", region="eu-west-1", last_invoked_time=None, buildspec=None
Project(
name=project_name,
arn=project_arn,
region="eu-west-1",
last_invoked_time=None,
buildspec=None,
)
]
with mock.patch(
@@ -56,14 +68,17 @@ class Test_codebuild_project_older_90_days:
assert len(result) == 1
assert result[0].status == "FAIL"
assert search("has never been built", result[0].status_extended)
assert result[0].resource_id == "test"
assert result[0].resource_arn == ""
assert result[0].resource_id == project_name
assert result[0].resource_arn == project_arn
def test_project_built_in_last_90_days(self):
codebuild_client = mock.MagicMock
project_name = "test-project"
project_arn = f"arn:aws:codebuild:{AWS_REGION}:{AWS_ACCOUNT_NUMBER}:project/{project_name}"
codebuild_client.projects = [
CodebuildProject(
name="test",
Project(
name=project_name,
arn=project_arn,
region="eu-west-1",
last_invoked_time=datetime.now(timezone.utc) - timedelta(days=10),
buildspec=None,
@@ -85,5 +100,5 @@ class Test_codebuild_project_older_90_days:
assert search(
"has been invoked in the last 90 days", result[0].status_extended
)
assert result[0].resource_id == "test"
assert result[0].resource_arn == ""
assert result[0].resource_id == project_name
assert result[0].resource_arn == project_arn

View File

@@ -1,15 +1,21 @@
from re import search
from unittest import mock
from prowler.providers.aws.services.codebuild.codebuild_service import CodebuildProject
from prowler.providers.aws.services.codebuild.codebuild_service import Project
AWS_REGION = "eu-west-1"
AWS_ACCOUNT_NUMBER = "123456789012"
class Test_codebuild_project_user_controlled_buildspec:
def test_project_not_buildspec(self):
codebuild_client = mock.MagicMock
project_name = "test-project"
project_arn = f"arn:aws:codebuild:{AWS_REGION}:{AWS_ACCOUNT_NUMBER}:project/{project_name}"
codebuild_client.projects = [
CodebuildProject(
name="test",
Project(
name=project_name,
arn=project_arn,
region="eu-west-1",
last_invoked_time=None,
buildspec=None,
@@ -32,14 +38,17 @@ class Test_codebuild_project_user_controlled_buildspec:
"does not use an user controlled buildspec",
result[0].status_extended,
)
assert result[0].resource_id == "test"
assert result[0].resource_arn == ""
assert result[0].resource_id == project_name
assert result[0].resource_arn == project_arn
def test_project_buildspec_not_yaml(self):
codebuild_client = mock.MagicMock
project_name = "test-project"
project_arn = f"arn:aws:codebuild:{AWS_REGION}:{AWS_ACCOUNT_NUMBER}:project/{project_name}"
codebuild_client.projects = [
CodebuildProject(
name="test",
Project(
name=project_name,
arn=project_arn,
region="eu-west-1",
last_invoked_time=None,
buildspec="arn:aws:s3:::my-codebuild-sample2/buildspec.out",
@@ -62,14 +71,17 @@ class Test_codebuild_project_user_controlled_buildspec:
"does not use an user controlled buildspec",
result[0].status_extended,
)
assert result[0].resource_id == "test"
assert result[0].resource_arn == ""
assert result[0].resource_id == project_name
assert result[0].resource_arn == project_arn
def test_project_valid_buildspec(self):
codebuild_client = mock.MagicMock
project_name = "test-project"
project_arn = f"arn:aws:codebuild:{AWS_REGION}:{AWS_ACCOUNT_NUMBER}:project/{project_name}"
codebuild_client.projects = [
CodebuildProject(
name="test",
Project(
name=project_name,
arn=project_arn,
region="eu-west-1",
last_invoked_time=None,
buildspec="arn:aws:s3:::my-codebuild-sample2/buildspec.yaml",
@@ -91,14 +103,17 @@ class Test_codebuild_project_user_controlled_buildspec:
assert search(
"uses an user controlled buildspec", result[0].status_extended
)
assert result[0].resource_id == "test"
assert result[0].resource_arn == ""
assert result[0].resource_id == project_name
assert result[0].resource_arn == project_arn
def test_project_invalid_buildspec_without_extension(self):
codebuild_client = mock.MagicMock
project_name = "test-project"
project_arn = f"arn:aws:codebuild:{AWS_REGION}:{AWS_ACCOUNT_NUMBER}:project/{project_name}"
codebuild_client.projects = [
CodebuildProject(
name="test",
Project(
name=project_name,
arn=project_arn,
region="eu-west-1",
last_invoked_time=None,
buildspec="arn:aws:s3:::my-codebuild-sample2/buildspecyaml",
@@ -121,5 +136,5 @@ class Test_codebuild_project_user_controlled_buildspec:
"does not use an user controlled buildspec",
result[0].status_extended,
)
assert result[0].resource_id == "test"
assert result[0].resource_arn == ""
assert result[0].resource_id == project_name
assert result[0].resource_arn == project_arn