bookmark/tests
pyr0ball 7d0bebf16d fix: return structured 503 on camera read failure in /api/observe
Wrap camera.read_frame() call in try/except to catch RuntimeError and
return a 503 Service Unavailable response with structured error JSON
(error + detail fields) instead of letting the exception propagate
as an unhandled 500. This gives kiosk operators a friendly, actionable
error message when the camera becomes unavailable.

Added FailingCamera test fixture and regression test that verifies
the 503 response with expected error details.
2026-07-13 10:58:30 -07:00
..
__init__.py chore: scaffold bookmark project structure 2026-07-13 10:08:41 -07:00
test_api.py fix: return structured 503 on camera read failure in /api/observe 2026-07-13 10:58:30 -07:00
test_camera.py fix: release camera capture handle on failed or repeated open 2026-07-13 10:44:47 -07:00
test_catalogue.py feat: add CSV catalogue data layer 2026-07-13 10:11:49 -07:00
test_image_processing.py feat: add book-region cropping from wide captures 2026-07-13 10:24:05 -07:00
test_manual_button_strategy.py feat: add capture strategy interface and manual button strategy 2026-07-13 10:28:10 -07:00
test_motion_stop_strategy.py feat: add motion-stop countdown capture strategy 2026-07-13 10:33:12 -07:00
test_session.py feat: add intake session state machine 2026-07-13 10:47:47 -07:00
test_sizing.py feat: add deterministic marker-based size bucketing 2026-07-13 10:19:10 -07:00
test_stable_centered_strategy.py feat: add stable-centered auto-detect capture strategy 2026-07-13 10:36:54 -07:00