"""Tests for the report renderers and the CLI entry point.""" import json from pathlib import Path import pytest from audit_report import __version__, reporters from audit_report.cli import main from audit_report.engine import evaluate from audit_report.loader import load_package from audit_report.rules import load_ruleset FIXTURES = Path(__file__).parent / "fixtures" RULESETS = Path("audit_report/rulesets") def _report(pkg_name="aws_audit_acme_2026-01-01", ruleset="aws.yaml"): pkg = load_package(FIXTURES / pkg_name) rs = load_ruleset(RULESETS / ruleset) findings = evaluate(pkg, rs) return reporters.build_report(pkg, findings, rs) def test_markdown_render_contains_sections(): md = reporters.render(_report(), "md") assert "# Evidence Report — acme" in md assert "## Control coverage" in md assert "## Findings" in md assert "aws.network.no-open-ssh" in md def test_html_render_is_self_contained(): html = reporters.render(_report(), "html") assert html.startswith("") assert "