"""Professional reports router tests (FASE-2.4).""" from unittest.mock import patch from app.models.campaign import Campaign @patch("app.services.report_generation_service.generate_purple_campaign_report") def test_purple_campaign_pdf_download(mock_gen, client, auth_headers, db): mock_gen.return_value = __file__ # existing file for FileResponse campaign = Campaign(name="Export Camp", status="active") db.add(campaign) db.commit() r = client.get( f"/api/v1/reports/generate/purple-campaign/{campaign.id}", params={"format": "pdf"}, headers=auth_headers, ) assert r.status_code == 200 assert r.headers["content-type"] == "application/pdf" @patch("app.services.report_generation_service.generate_coverage_report") def test_coverage_summary_html(mock_gen, client, auth_headers): import tempfile import os fd, path = tempfile.mkstemp(suffix=".html") os.write(fd, b"ok") os.close(fd) mock_gen.return_value = path r = client.get( "/api/v1/reports/generate/coverage-summary", params={"format": "html"}, headers=auth_headers, ) assert r.status_code == 200 assert "text/html" in r.headers["content-type"] os.unlink(path)