diff --git a/providers/aws/services/codebuild/codebuild_project_user_controlled_buildspec/codebuild_project_user_controlled_buildspec.py b/providers/aws/services/codebuild/codebuild_project_user_controlled_buildspec/codebuild_project_user_controlled_buildspec.py index be236578..e32f8732 100644 --- a/providers/aws/services/codebuild/codebuild_project_user_controlled_buildspec/codebuild_project_user_controlled_buildspec.py +++ b/providers/aws/services/codebuild/codebuild_project_user_controlled_buildspec/codebuild_project_user_controlled_buildspec.py @@ -15,8 +15,8 @@ class codebuild_project_user_controlled_buildspec(Check): report.status = "FAIL" report.status_extended = f"CodeBuild project {project.name} does not use a user controlled buildspec" if project.buildspec: - if search(".*\.yaml$", project.buildspec) or search( - ".*\.yml$", project.buildspec + if search(r".*\.yaml$", project.buildspec) or search( + r".*\.yml$", project.buildspec ): report.status = "PASS" report.status_extended = f"CodeBuild project {project.name} uses a user controlled buildspec" diff --git a/providers/aws/services/codebuild/codebuild_project_user_controlled_buildspec/codebuild_project_user_controlled_buildspec_test.py b/providers/aws/services/codebuild/codebuild_project_user_controlled_buildspec/codebuild_project_user_controlled_buildspec_test.py index 5cb52db0..2b1c901e 100644 --- a/providers/aws/services/codebuild/codebuild_project_user_controlled_buildspec/codebuild_project_user_controlled_buildspec_test.py +++ b/providers/aws/services/codebuild/codebuild_project_user_controlled_buildspec/codebuild_project_user_controlled_buildspec_test.py @@ -9,7 +9,10 @@ class Test_codebuild_project_user_controlled_buildspec: codebuild_client = mock.MagicMock codebuild_client.projects = [ CodebuildProject( - name="test", region="eu-west-1", last_invoked_time=None, buildspec=None + name="test", + region="eu-west-1", + last_invoked_time=None, + buildspec=None, ) ] with mock.patch( @@ -26,7 +29,8 @@ class Test_codebuild_project_user_controlled_buildspec: assert len(result) == 1 assert result[0].status == "FAIL" assert search( - "does not use a user controlled buildspec", result[0].status_extended + "does not use a user controlled buildspec", + result[0].status_extended, ) assert result[0].resource_id == "test" assert result[0].resource_arn == "" @@ -55,7 +59,8 @@ class Test_codebuild_project_user_controlled_buildspec: assert len(result) == 1 assert result[0].status == "FAIL" assert search( - "does not use a user controlled buildspec", result[0].status_extended + "does not use a user controlled buildspec", + result[0].status_extended, ) assert result[0].resource_id == "test" assert result[0].resource_arn == "" @@ -86,3 +91,33 @@ class Test_codebuild_project_user_controlled_buildspec: assert search("uses a user controlled buildspec", result[0].status_extended) assert result[0].resource_id == "test" assert result[0].resource_arn == "" + + def test_project_invalid_buildspec_without_extension(self): + codebuild_client = mock.MagicMock + codebuild_client.projects = [ + CodebuildProject( + name="test", + region="eu-west-1", + last_invoked_time=None, + buildspec="arn:aws:s3:::my-codebuild-sample2/buildspecyaml", + ) + ] + with mock.patch( + "providers.aws.services.codebuild.codebuild_service.Codebuild", + codebuild_client, + ): + from providers.aws.services.codebuild.codebuild_project_user_controlled_buildspec.codebuild_project_user_controlled_buildspec import ( + codebuild_project_user_controlled_buildspec, + ) + + check = codebuild_project_user_controlled_buildspec() + result = check.execute() + + assert len(result) == 1 + assert result[0].status == "FAIL" + assert search( + "does not use a user controlled buildspec", + result[0].status_extended, + ) + assert result[0].resource_id == "test" + assert result[0].resource_arn == ""