"""Smoke test: read first frames of existing sample videos.""" import os import pytest from first_frame_reader import read_first_frames THREESHOT = "/workspace/ComfyUI/input/test_3shots.mp4" IMBA = "/workspace/ComfyUI/input/imba.mp4" @pytest.mark.skipif(not os.path.exists(THREESHOT), reason="sample missing") def test_read_single_clip_returns_1x_tensor(): t = read_first_frames([THREESHOT]) assert t.shape[0] == 1 assert t.ndim == 4 assert t.shape[3] == 3 assert t.dtype.is_floating_point assert 0.0 <= t.min().item() and t.max().item() <= 1.0 @pytest.mark.skipif(not (os.path.exists(THREESHOT) and os.path.exists(IMBA)), reason="samples missing") def test_read_multiple_clips_uses_first_as_reference_size(): t = read_first_frames([THREESHOT, IMBA]) assert t.shape[0] == 2 # Second clip should be resized to match first assert t[0].shape == t[1].shape def test_read_empty_list_returns_empty_tensor(): t = read_first_frames([]) assert t.shape[0] == 0 def test_read_missing_file_returns_black_fallback(): t = read_first_frames(["/nonexistent/fake_clip.mp4"]) assert t.shape[0] == 1 # Black frame: all zeros assert t.max().item() == 0.0