CoolFace
Apppublic

build-small-hackathon/hackathon-advisor

sourceHugging Facemitupdated 3mo agoView on Hugging Face
16likes
test_submission_packet.py57 linesDownload Raw Back to tests
1from tests.helpers import load_test_index2 3from hackathon_advisor.agent import AdvisorEngine4from hackathon_advisor.prize_ledger import prize_ledger5from hackathon_advisor.submission_packet import build_submission_packet_markdown6from hackathon_advisor.trace_export import trace_metadata7 8 9def test_submission_packet_contains_demo_and_prize_evidence() -> None:10    index = load_test_index()11    engine = AdvisorEngine(index)12    state = {"goals": ["Well-Tuned", "Field Notes"]}13    state = engine.turn("A local-first archive cartographer for family photos", state).state14    state = engine.turn("make a build plan", state).state15 16    markdown = build_submission_packet_markdown(17        state,18        {19            **trace_metadata(index),20            "project_count": len(index.projects),21        },22        prize_ledger(engine.runtime_status()),23    )24 25    assert markdown.startswith("# Hackathon Advisor Submission Packet")26    assert "## Demo Script" in markdown27    assert "## Artifact Checklist" in markdown28    assert "## Prize Evidence" in markdown29    assert "## Model Budget" in markdown30    assert "## Social Post Draft" in markdown31    assert "Hackathon Advisor" in markdown32    assert "Well-Tuned | ready" in markdown33    assert "MiniCPM5 LoRA SFT JSONL | ready | lora_dataset" in markdown34    assert "Fate page PNG | ready | /api/artifact.png" in markdown35    assert "Notes, Chapter, and PNG are available in the app" in markdown36    assert "`/api/prize-ledger` separates ready and planned badge states" in markdown37    assert "A local-first archive cartographer for family photos" in markdown38 39 40def test_empty_submission_packet_is_honest_about_missing_session_artifacts() -> None:41    markdown = build_submission_packet_markdown(42        {},43        {44            "snapshot_generated_at": "2026-06-06T00:00:00+00:00",45            "project_count": 100,46            "index_algorithm": "llama-cpp-embedding-v1",47            "index_generated_at": "2026-06-06T01:00:00+00:00",48            "snapshot_digest": "abc",49        },50        prize_ledger({"backend": "rules", "model_id": "deterministic-tool-router", "adapter_id": ""}),51    )52 53    assert "Title: Unwritten Page" in markdown54    assert "Tool trace JSONL | needs session" in markdown55    assert "Submission packet markdown | ready" in markdown56    assert "No ideas recorded yet." in markdown57