import pytest from pathlib import Path from src.reporter import manager_summary_to_markdown, build_manager_summary_docx, build_full_report_docx SAMPLE_ANALYSIS = { "total": 5, "active_total": 3, "progress_counts": {"In Progress": 2, "Not Started": 1, "Complete": 2}, "priority_counts": {"P1": 3, "P2": 2}, "red_flags": [], "p1_watchlist": [], "by_owner": {}, "overdue": [], } SAMPLE_CLAUDE_TEXT = """## Programme Overview Things are moving well this week. ## P1 Watch List - Build reporting tool: In Progress — on track ## Blockers No blockers this week. """ SAMPLE_FULL_CLAUDE_TEXT = """## Executive Summary 5 total tasks, 3 active. ## Red Flags No red flags. ## Team Breakdown Tony Coppola is working on the reporting tool. ## P1 Watch List - Tony — Build reporting tool Red: In Progress — on track ## Overdue Tasks No overdue tasks. """ def test_manager_summary_to_markdown_contains_header(tmp_path): md = manager_summary_to_markdown(SAMPLE_ANALYSIS, SAMPLE_CLAUDE_TEXT) assert "Programme Pulse" in md assert "Programme Overview" in md def test_manager_summary_to_markdown_includes_stats(tmp_path): md = manager_summary_to_markdown(SAMPLE_ANALYSIS, SAMPLE_CLAUDE_TEXT) assert "5" in md # total tasks def test_build_manager_summary_docx_creates_file(tmp_path): path = build_manager_summary_docx(SAMPLE_ANALYSIS, SAMPLE_CLAUDE_TEXT, tmp_path) assert path.exists() assert path.suffix == ".docx" def test_build_full_report_docx_creates_file(tmp_path): path = build_full_report_docx(SAMPLE_ANALYSIS, SAMPLE_FULL_CLAUDE_TEXT, tmp_path) assert path.exists() assert path.suffix == ".docx"