import json import pytest from datetime import datetime from ayn_antivirus.core.engine import ScanResult, ScanType, ThreatInfo, ThreatType, Severity from ayn_antivirus.reports.generator import ReportGenerator def _make_scan_result(): return ScanResult( scan_id="test-001", start_time=datetime.now(), end_time=datetime.now(), files_scanned=500, files_skipped=10, threats=[ ThreatInfo( path="/tmp/evil.sh", threat_name="ReverseShell", threat_type=ThreatType.MALWARE, severity=Severity.CRITICAL, detector_name="heuristic", details="Reverse shell detected", file_hash="abc123" ) ], scan_path="/tmp", scan_type=ScanType.FULL ) def test_text_report(): gen = ReportGenerator() result = _make_scan_result() text = gen.generate_text(result) assert "AYN ANTIVIRUS" in text assert "ReverseShell" in text def test_json_report(): gen = ReportGenerator() result = _make_scan_result() j = gen.generate_json(result) data = json.loads(j) assert data["summary"]["total_threats"] == 1 def test_html_report(): gen = ReportGenerator() result = _make_scan_result() html = gen.generate_html(result) assert "