amplegest / tests /test_one_pager.py
Viney's picture
feat: multi-provider LLM support, prominent chat, design pass, and new analytics
7880373
Raw
History Blame Contribute Delete
2.24 kB
"""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"