festifun/backend/tests
type-two feb5588a1b lane G M17: memory capsule — zero-backend shareable bundle + Range-capable serve.py
build_capsule copies frontend/dist (clear error if missing), copies referenced media,
bakes every read-only API response extension-less at the live API's relative paths
(manifest with capsule:true + has_capture:false, events, anchors, poses, beats,
pointcloud, splat, audio via the same lazy extract_audio_hq cache, plus M16 saved
paths — listing baked as api/paths/index.html so per-id files can share the prefix),
injects window.__F4D_API_BASE__="" ahead of the app script, and ships a stdlib
serve.py (206 Range slicing incl. suffix ranges + 416, JSON content types for the
extension-less api/* files). Optional artifacts degrade by omission.

test_capsule.py: bundle structure, baked-JSON deep-equal vs the live route functions,
injection position, degrade/overwrite-guard/no-dist errors, CLI dispatch (CR-4), and
serve.py exercised over real HTTP in a subprocess (200/206/416/404, content types,
mp4+m4a magic bytes). Suite: 169 passed.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-17 17:48:22 +10:00
..
conftest.py Foundation (M0 + M3 + frozen contracts): scaffold, synthetic fixtures, full API 2026-07-16 00:45:55 +10:00
test_api.py foundation2 (phase 5a): contracts, stubs, hooks & UI wiring for lanes E/F/G 2026-07-17 17:31:08 +10:00
test_audio_sync.py Sync solver: cache per-signal FFTs across the pairwise GCC-PHAT stage 2026-07-17 17:02:27 +10:00
test_capsule.py lane G M17: memory capsule — zero-backend shareable bundle + Range-capable serve.py 2026-07-17 17:48:22 +10:00
test_capture.py Live capture: USB webcams, laptop cams, and phones -> data/raw 2026-07-17 15:43:51 +10:00
test_events_ai.py lane D (M7): audio moment detection + pluggable AI classification 2026-07-16 08:34:56 +10:00
test_geometry.py Lane B (M2 + M8 geometry): COLMAP reconstruction, geometry math, graceful degradation 2026-07-16 08:40:46 +10:00
test_ingest.py Lane A (M1): ingest + GCC-PHAT audio sync 2026-07-16 01:13:56 +10:00
test_paths.py lane G M16: deepen paths-route coverage (30 tests) 2026-07-17 17:48:22 +10:00
test_phase5_api.py lane G: CR-4 — retire the obsolete capsule stub assertion (M17 landed; CR-1 precedent) 2026-07-17 17:42:19 +10:00
test_resolve.py Phase 4 polish: anchor supersede + delete, docs/ideas, field-test scaffolding 2026-07-16 12:15:35 +10:00
test_sfm.py Lane B (M2 + M8 geometry): COLMAP reconstruction, geometry math, graceful degradation 2026-07-16 08:40:46 +10:00
test_synthetic.py Foundation (M0 + M3 + frozen contracts): scaffold, synthetic fixtures, full API 2026-07-16 00:45:55 +10:00