mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-07-24 13:01:56 +00:00
chore(iac): add iac_provider tests
This commit is contained in:
@@ -1,8 +1,3 @@
|
||||
from mock import MagicMock
|
||||
|
||||
from prowler.providers.common.models import Audit_Metadata
|
||||
from prowler.providers.iac.iac_provider import IacProvider
|
||||
|
||||
# IAC Provider Constants
|
||||
DEFAULT_SCAN_PATH = "."
|
||||
DEFAULT_REGION = "global"
|
||||
@@ -12,6 +7,7 @@ DEFAULT_IDENTITY = "prowler"
|
||||
# Sample Checkov Output
|
||||
SAMPLE_CHECKOV_OUTPUT = [
|
||||
{
|
||||
"check_type": "terraform",
|
||||
"results": {
|
||||
"failed_checks": [
|
||||
{
|
||||
@@ -40,7 +36,7 @@ SAMPLE_CHECKOV_OUTPUT = [
|
||||
]
|
||||
|
||||
# Sample Finding Data
|
||||
SAMPLE_FINDING = {"results": SAMPLE_CHECKOV_OUTPUT[0]["results"]}
|
||||
SAMPLE_FINDING = SAMPLE_CHECKOV_OUTPUT[0]
|
||||
|
||||
SAMPLE_FAILED_CHECK = {
|
||||
"check_id": "CKV_AWS_1",
|
||||
@@ -56,62 +52,6 @@ SAMPLE_PASSED_CHECK = {
|
||||
"severity": "low",
|
||||
}
|
||||
|
||||
# Sample Config Content
|
||||
SAMPLE_CONFIG_CONTENT = {
|
||||
"custom_setting": "value",
|
||||
"threshold": 100,
|
||||
"enable_feature": True,
|
||||
}
|
||||
|
||||
SAMPLE_FIXER_CONFIG = {"fix_setting": "enabled", "auto_fix": False}
|
||||
|
||||
|
||||
def set_mocked_iac_provider(
|
||||
scan_path: str = DEFAULT_SCAN_PATH,
|
||||
config_content: dict = None,
|
||||
fixer_config: dict = None,
|
||||
audit_metadata: Audit_Metadata = None,
|
||||
) -> IacProvider:
|
||||
"""
|
||||
Create a mocked IAC provider for testing.
|
||||
|
||||
Args:
|
||||
scan_path: The directory path to scan
|
||||
config_content: Custom audit configuration
|
||||
fixer_config: Custom fixer configuration
|
||||
audit_metadata: Custom audit metadata
|
||||
|
||||
Returns:
|
||||
MagicMock: Mocked IAC provider instance
|
||||
"""
|
||||
provider = MagicMock()
|
||||
provider.type = "iac"
|
||||
provider._type = "iac"
|
||||
provider.scan_path = scan_path
|
||||
provider.region = DEFAULT_REGION
|
||||
provider.audited_account = DEFAULT_ACCOUNT
|
||||
provider.identity = DEFAULT_IDENTITY
|
||||
provider.session = None
|
||||
provider._audit_config = config_content or {}
|
||||
provider._fixer_config = fixer_config or {}
|
||||
provider._mutelist = None
|
||||
|
||||
if audit_metadata:
|
||||
provider.audit_metadata = audit_metadata
|
||||
else:
|
||||
provider.audit_metadata = Audit_Metadata(
|
||||
provider="iac",
|
||||
account_id=DEFAULT_ACCOUNT,
|
||||
account_name="iac",
|
||||
region=DEFAULT_REGION,
|
||||
services_scanned=0,
|
||||
expected_checks=[],
|
||||
completed_checks=0,
|
||||
audit_progress=0,
|
||||
)
|
||||
|
||||
return provider
|
||||
|
||||
|
||||
def get_sample_checkov_json_output():
|
||||
"""Return sample Checkov JSON output as string"""
|
||||
|
||||
@@ -53,9 +53,7 @@ class TestIacProvider:
|
||||
"""Test processing a passed check"""
|
||||
provider = IacProvider()
|
||||
|
||||
finding = {"severity": "medium"}
|
||||
|
||||
report = provider._process_check(finding, SAMPLE_PASSED_CHECK, "PASS")
|
||||
report = provider._process_check(SAMPLE_FINDING, SAMPLE_PASSED_CHECK, "PASS")
|
||||
|
||||
assert isinstance(report, CheckReportIAC)
|
||||
assert report.status == "PASS"
|
||||
|
||||
Reference in New Issue
Block a user