重组为 backend/clients/docs 三层结构,并清理 git 污染。
将后端迁入 backend/,完善根目录 .gitignore,删除误提交的 .mypy_cache 缓存文件。 Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
36
backend/tests/test_algorithm_cli_modes.py
Normal file
36
backend/tests/test_algorithm_cli_modes.py
Normal file
@@ -0,0 +1,36 @@
|
||||
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
|
||||
Reference in New Issue
Block a user