Files
operating-room-monitor-server/backend/tests/test_algorithm_cli_modes.py
Kevin 1af442481e 重组为 backend/clients/docs 三层结构,并清理 git 污染。
将后端迁入 backend/,完善根目录 .gitignore,删除误提交的 .mypy_cache 缓存文件。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-05-21 16:02:25 +08:00

37 lines
1.0 KiB
Python

from __future__ import annotations
from app.algorithm_runner.cli import _resolve_source_mode, _stream_time_for_frame
def test_resolve_source_mode_auto_detects_local_video(tmp_path) -> None:
video = tmp_path / "case.mp4"
video.write_bytes(b"")
assert _resolve_source_mode(str(video), "auto") == "file"
def test_resolve_source_mode_auto_keeps_rtsp_realtime() -> None:
assert _resolve_source_mode("rtsp://127.0.0.1:8554/demo", "auto") == "realtime"
def test_resolve_source_mode_respects_explicit_choice() -> None:
assert _resolve_source_mode("rtsp://127.0.0.1:8554/demo", "file") == "file"
def test_realtime_stream_time_uses_frame_index_not_wall_clock() -> None:
assert _stream_time_for_frame(
source_mode="realtime",
cap_pos_msec=999_999.0,
frame_idx=50,
fps_hint=25.0,
) == 2.0
def test_file_stream_time_prefers_capture_timestamp() -> None:
assert _stream_time_for_frame(
source_mode="file",
cap_pos_msec=1234.0,
frame_idx=50,
fps_hint=25.0,
) == 1.234