"""tests/test_one_pager.py — PDF one-pager export (export/one_pager.py).""" from __future__ import annotations from export.one_pager import build_pdf def _brief(**overrides) -> dict: base = { "ticker": "NVDA", "company_name": "NVIDIA CORP", "filing_date": "2026-05-20", "generated_at": "2026-05-21T10:00:00Z", "what_matters_most": "Revenue grew but margins compressed sharply amid China export controls.", "bull_points": [{"text": "Strategic partnerships provide multi-year demand visibility."}], "bear_points": [{"text": "Gross margin compression is structural, not transitory."}], "what_to_watch": ["Q2 FY2027 revenue guidance", "Gross margin guidance for FY2027"], } base.update(overrides) return base def test_build_pdf_returns_nonempty_bytes(): data = build_pdf(_brief(), "NVDA") assert isinstance(data, bytes) assert len(data) > 100 def test_build_pdf_starts_with_pdf_magic_bytes(): data = build_pdf(_brief(), "NVDA") assert data[:4] == b"%PDF" def test_build_pdf_is_a_single_page(): data = build_pdf(_brief(), "NVDA") # A minimal, reliable single-page check without a full PDF parser # dependency: fpdf2 emits one "/Type /Page" object per page. assert data.count(b"/Type /Page") - data.count(b"/Type /Pages") == 1 def test_build_pdf_handles_missing_optional_sections(): minimal = {"ticker": "NVDA", "company_name": "NVIDIA CORP"} data = build_pdf(minimal, "NVDA") assert data[:4] == b"%PDF" def test_build_pdf_handles_non_latin1_characters_without_raising(): brief = _brief(what_matters_most="Margins compressed — management flagged “headwinds” in the call.") data = build_pdf(brief, "NVDA") assert data[:4] == b"%PDF" def test_build_pdf_handles_many_bullets_without_raising(): # Regression guard for the fpdf2 cursor-drift bug: multi_cell() without # explicit new_x/new_y leaves the cursor at the right margin after a # short unwrapped line, starving the *next* call of horizontal space. brief = _brief(bull_points=[{"text": f"Bull point number {i} with some detail."} for i in range(5)]) data = build_pdf(brief, "NVDA") assert data[:4] == b"%PDF"