35 lines
1.4 KiB
Python
35 lines
1.4 KiB
Python
import json
|
|
import pytest
|
|
import os
|
|
import sys
|
|
sys.path.insert(0, os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))
|
|
from aws_scan_findings_to_sarif import convert_to_sarif
|
|
|
|
def test_convert_to_sarif():
|
|
base_dir = os.path.dirname(os.path.abspath(__file__))
|
|
sample_file_path = os.path.join(base_dir, "sample-api-response-ecr-describe-image-scan-findings.json")
|
|
with open(sample_file_path, "r") as f:
|
|
ecr_response = json.load(f)
|
|
|
|
sarif_report = convert_to_sarif(ecr_response)
|
|
|
|
assert sarif_report["version"] == "2.1.0"
|
|
assert sarif_report["runs"][0]["tool"]["driver"]["name"] == "AWS ECR"
|
|
assert len(sarif_report["runs"][0]["results"]) == 1
|
|
assert sarif_report["runs"][0]["results"][0]["ruleId"] == "CVE-2019-5188"
|
|
assert sarif_report["runs"][0]["results"][0]["level"] == "medium"
|
|
|
|
def test_convert_to_sarif_reduced_to_one_issue():
|
|
base_dir = os.path.dirname(os.path.abspath(__file__))
|
|
sample_file_path = os.path.join(base_dir, "tests/sample-api-response-ecr-scan-ubuntu-reduced-to-one-issue.json")
|
|
expected_output_path = os.path.join(base_dir, "tests/trivy-report-ubuntu-reduced-to-one-issue.sarif")
|
|
|
|
with open(sample_file_path, "r") as f:
|
|
ecr_response = json.load(f)
|
|
with open(expected_output_path, "r") as f:
|
|
expected_output = json.load(f)
|
|
|
|
sarif_report = convert_to_sarif(ecr_response)
|
|
|
|
assert sarif_report == expected_output
|