mirror of
https://github.com/prowler-cloud/prowler.git
synced 2026-10-21 19:04:19 +00:00
chore(cli): improve tests
This commit is contained in:
1 parent
c3975cf0e4
commit
8c28962d12
2 files changed
+20
-15
No files matched your search
+9
-5
@@ -30,14 +30,16 @@ def check_provider(provider: str):
|
||||
def check_compliance_framework(provider: str, compliance_framework: list):
|
||||
# From the available_compliance_frameworks, check if the compliance_framework is valid for the provider
|
||||
compliance_frameworks_provider = []
|
||||
valid_compliance_frameworks = []
|
||||
for provider_compliance_framework in available_compliance_frameworks:
|
||||
if provider in provider_compliance_framework:
|
||||
compliance_frameworks_provider.append(provider_compliance_framework)
|
||||
for compliance in compliance_framework:
|
||||
if compliance not in compliance_frameworks_provider:
|
||||
raise typer.BadParameter(
|
||||
f"{compliance} is not a valid Compliance Framework for {provider}"
|
||||
)
|
||||
print(f"{compliance} is not a valid Compliance Framework\n")
|
||||
else:
|
||||
valid_compliance_frameworks.append(compliance)
|
||||
return valid_compliance_frameworks
|
||||
|
||||
|
||||
@app.command()
|
||||
@@ -89,10 +91,12 @@ def main(
|
||||
list_compliance_requirements_value = list_compliance_requirements_value.split(
|
||||
","
|
||||
)
|
||||
check_compliance_framework(provider, list_compliance_requirements_value)
|
||||
valid_compliance = check_compliance_framework(
|
||||
provider, list_compliance_requirements_value
|
||||
)
|
||||
print_compliance_requirements(
|
||||
bulk_load_compliance_frameworks(provider),
|
||||
list_compliance_requirements_value,
|
||||
valid_compliance,
|
||||
)
|
||||
if list_checks_bool:
|
||||
checks_metadata = bulk_load_checks_metadata(provider)
|
||||
|
||||
+11
-10
@@ -10,54 +10,55 @@ runner = CliRunner()
|
||||
class TestCLI:
|
||||
|
||||
def test_list_services_aws(self):
|
||||
result = runner.invoke(app, ["aws", "list-services"])
|
||||
result = runner.invoke(app, ["aws", "--list-services"])
|
||||
assert result.exit_code == 0
|
||||
assert "available services." in result.output
|
||||
|
||||
def test_list_fixers_aws(self):
|
||||
result = runner.invoke(app, ["aws", "list-fixers"])
|
||||
result = runner.invoke(app, ["aws", "--list-fixers"])
|
||||
assert result.exit_code == 0
|
||||
assert "available fixers." in result.output
|
||||
|
||||
def test_list_categories_aws(self):
|
||||
result = runner.invoke(app, ["aws", "list-categories"])
|
||||
result = runner.invoke(app, ["aws", "--list-categories"])
|
||||
assert result.exit_code == 0
|
||||
assert "available categories." in result.output
|
||||
|
||||
def test_list_compliance_aws(self):
|
||||
result = runner.invoke(app, ["aws", "list-compliance"])
|
||||
result = runner.invoke(app, ["aws", "--list-compliance"])
|
||||
assert result.exit_code == 0
|
||||
assert "available Compliance Frameworks." in result.output
|
||||
|
||||
def test_list_compliance_requirements_aws(self):
|
||||
result = runner.invoke(
|
||||
app, ["aws", "list-compliance-requirements", "cis_2.0_aws", "soc2_aws"]
|
||||
app, ["aws", "--list-compliance-requirements", "cis_2.0_aws,soc2_aws"]
|
||||
)
|
||||
assert result.exit_code == 0
|
||||
assert "Listing CIS 2.0 AWS Compliance Requirements:" in result.output
|
||||
assert "Listing SOC2 AWS Compliance Requirements:" in result.output
|
||||
|
||||
def test_list_compliance_requirements_no_compliance_aws(self):
|
||||
result = runner.invoke(app, ["aws", "list-compliance-requirements"])
|
||||
result = runner.invoke(app, ["aws", "--list-compliance-requirements"])
|
||||
assert result.exit_code == 2
|
||||
assert "Expected at least one" in result.output
|
||||
assert "requires an argument" in result.output
|
||||
|
||||
def test_list_compliance_requirements_one_invalid_aws(self):
|
||||
invalid_name = "invalid"
|
||||
result = runner.invoke(
|
||||
app, ["aws", "list-compliance-requirements", "cis_2.0_aws", invalid_name]
|
||||
app,
|
||||
["aws", "--list-compliance-requirements", f"cis_2.0_aws,{invalid_name}"],
|
||||
)
|
||||
assert result.exit_code == 0
|
||||
assert "Listing CIS 2.0 AWS Compliance Requirements:" in result.output
|
||||
assert f"{invalid_name} is not a valid Compliance Framework" in result.output
|
||||
|
||||
def test_list_checks_aws(self):
|
||||
result = runner.invoke(app, ["aws", "list-checks"])
|
||||
result = runner.invoke(app, ["aws", "--list-checks"])
|
||||
assert result.exit_code == 0
|
||||
assert "available checks." in result.output
|
||||
|
||||
def test_list_checks_json_aws(self):
|
||||
result = runner.invoke(app, ["aws", "list-checks-json"])
|
||||
result = runner.invoke(app, ["aws", "--list-checks-json"])
|
||||
assert result.exit_code == 0
|
||||
assert "aws" in result.output
|
||||
# validate the json output
|
||||
|
||||
Reference in new issue
Block a user