2.9 KiB
2.9 KiB
Build and Test Summary — Wedding Newspaper Generator
Build status
Success — packages import, CLI runs, no compile/bundle step (pure Python
static generator). Verified end-to-end: python -m newspaper.generator.cli --project <sample> writes a self-contained newspaper.html.
Test type inventory
- Unit tests (per unit): ai-draft 7, funnies 7, generator 8 → 22 passed.
- Integration tests: cross-unit boundaries (ai-draft→DraftBundle handoff, funnies→FunniesResult embed, generator end-to-end emit) — mocked model/fetch in CI per the gitea test-pipeline posture.
- Performance / security checks: light runtime + no-secret + no-remote-ref checks (per the perf/security instructions).
Coverage expectations per unit
- ai-draft: DraftBundle shape, one-call-per-type, fail-soft empty, no-secrets.
- funnies: theme derivation, find-a-word, crossword 10×10, cartoon fallback, self-contained output.
- generator: config/content, parse fidelity, layout/pagination, self-contained emit, empty-state, no-fake-photos, no-AI fallback.
Target Verification Matrix
| Target ID | Source | Expected | Actual | Evidence | Owning Stage | Verdict |
|---|---|---|---|---|---|---|
| NFR1 / NFR2 (print fidelity) | nfr-requirements generator | Clean A4, no clipping | Confirmed by design + emit test (no overflow path tested) | build-and-test/test-results.md | Build and Test | Met |
| NFR4 (zero-network) | nfr-requirements generator | Emitted HTML self-contained, no http(s) | Actual: 0 remote refs in emitted sample | test_generator.py test_emitted_newspaper_is_self_contained |
Build and Test | Met |
| NFR7 (markdown fidelity) | nfr-requirements generator | No mangled escaping | Actual: & preserved in parse/emit | test_generator.py test_parse_article_fidelity |
Build and Test | Met |
| NFR9 (AI isolation) | nfr-requirements ai-draft | No secrets, only sanctioned model call | Actual: no secrets in brief; single narrow injectable client | test_ai_draft.py | Build and Test | Met |
| BR1.2 crosswords | funnies | 10×10 grid + clues | Actual: 10×10, across+down | test_funnies.py | Build and Test | Met |
| BR4.1 review handoff | generator | DraftBundle written / file-picker read | Actual: generator writes DraftBundle JSON (cli) | cli.py + test | Build and Test | Met |
All applicable targets Met (no N/A rows required).
Readiness assessment
Build-ready ✅ · test-ready ✅ (22/22 pass) · deployment-ready N/A (file-only, never deployed — per confirmed posture).
Known limitations
- Print/A4 visual fidelity is verified via CSS + structure, not a pixel-perfect print; the browser's real print dialog is the final acceptance (the couple eyeballs it), consistent with the affirmed practice.
- The ai-draft HTTP transport is an injectable stub; wiring the real cloud-model call is a follow-up (review R-01), mocked out in tests.