diff --git a/api/src/backend/tasks/tests/test_export.py b/api/src/backend/tasks/tests/test_export.py index f113d22f17..9009e9dbee 100644 --- a/api/src/backend/tasks/tests/test_export.py +++ b/api/src/backend/tasks/tests/test_export.py @@ -136,15 +136,17 @@ class TestOutputs: scan_id = "s1" provider = "aws" - path, compliance = _generate_output_directory( + path, compliance, threatscore = _generate_output_directory( base_dir, provider, tenant_id, scan_id ) assert os.path.isdir(os.path.dirname(path)) assert os.path.isdir(os.path.dirname(compliance)) + assert os.path.isdir(os.path.dirname(threatscore)) assert path.endswith(f"{provider}-{output_file_timestamp}") assert compliance.endswith(f"{provider}-{output_file_timestamp}") + assert threatscore.endswith(f"{provider}-{output_file_timestamp}") def test_generate_output_directory_invalid_character(self, tmpdir): from prowler.config.config import output_file_timestamp @@ -155,12 +157,14 @@ class TestOutputs: scan_id = "s1" provider = "aws/test@check" - path, compliance = _generate_output_directory( + path, compliance, threatscore = _generate_output_directory( base_dir, provider, tenant_id, scan_id ) assert os.path.isdir(os.path.dirname(path)) assert os.path.isdir(os.path.dirname(compliance)) + assert os.path.isdir(os.path.dirname(threatscore)) assert path.endswith(f"aws-test-check-{output_file_timestamp}") assert compliance.endswith(f"aws-test-check-{output_file_timestamp}") + assert threatscore.endswith(f"aws-test-check-{output_file_timestamp}") diff --git a/api/src/backend/tasks/tests/test_threatscore.py b/api/src/backend/tasks/tests/test_threatscore.py index 83ed171b2d..9bc125fc85 100644 --- a/api/src/backend/tasks/tests/test_threatscore.py +++ b/api/src/backend/tasks/tests/test_threatscore.py @@ -88,13 +88,20 @@ class TestGenerateThreatscoreReport: def test_generate_threatscore_report_fails_upload(self): with ( patch("tasks.jobs.report.ScanSummary.objects.filter") as mock_filter, - patch("tasks.jobs.report.Provider.objects.get"), + patch("tasks.jobs.report.Provider.objects.get") as mock_provider_get, patch("tasks.jobs.report._generate_output_directory") as mock_gen_dir, patch("tasks.jobs.report.generate_threatscore_report"), patch("tasks.jobs.report._upload_to_s3", return_value=None), patch("tasks.jobs.report.Scan.all_objects.filter") as mock_scan_update, ): mock_filter.return_value.exists.return_value = True + + # Mock provider + mock_provider = MagicMock() + mock_provider.uid = "aws-provider-uid" + mock_provider.provider = "aws" + mock_provider_get.return_value = mock_provider + mock_gen_dir.return_value = ( "/tmp/output", "/tmp/compressed", @@ -113,7 +120,7 @@ class TestGenerateThreatscoreReport: def test_generate_threatscore_report_logs_rmtree_exception(self, caplog): with ( patch("tasks.jobs.report.ScanSummary.objects.filter") as mock_filter, - patch("tasks.jobs.report.Provider.objects.get"), + patch("tasks.jobs.report.Provider.objects.get") as mock_provider_get, patch("tasks.jobs.report._generate_output_directory") as mock_gen_dir, patch("tasks.jobs.report.generate_threatscore_report"), patch( @@ -125,6 +132,13 @@ class TestGenerateThreatscoreReport: ), ): mock_filter.return_value.exists.return_value = True + + # Mock provider + mock_provider = MagicMock() + mock_provider.uid = "aws-provider-uid" + mock_provider.provider = "aws" + mock_provider_get.return_value = mock_provider + mock_gen_dir.return_value = ( "/tmp/output", "/tmp/compressed", @@ -202,10 +216,12 @@ class TestGenerateThreatscoreReportFunction: @patch("tasks.jobs.report.Table") @patch("tasks.jobs.report.TableStyle") @patch("tasks.jobs.report.plt.subplots") + @patch("tasks.jobs.report.plt.savefig") @patch("tasks.jobs.report.io.BytesIO") def test_generate_threatscore_report_success( self, mock_bytesio, + mock_savefig, mock_subplots, mock_table_style, mock_table,