BladeSzaSza's picture
fix: define REPO_NAME in hf_upload.sh (ensure_blade_space referenced it)
4948993 verified
Raw
History Blame Contribute Delete
1.74 kB
"""Tests for IngestAgent."""
import pytest
import numpy as np
from formscout.agents.ingest import IngestAgent
from formscout.types import IngestResult
def _make_test_video(path, fps=30, n_frames=30, w=640, h=480):
"""Create a minimal test video using OpenCV."""
import cv2
out = cv2.VideoWriter(str(path), cv2.VideoWriter_fourcc(*"mp4v"), fps, (w, h))
for _ in range(n_frames):
out.write(np.zeros((h, w, 3), dtype=np.uint8))
out.release()
class TestIngestAgent:
def test_returns_typed_result(self, tmp_path):
p = tmp_path / "test.mp4"
_make_test_video(p)
agent = IngestAgent()
result = agent.run(str(p))
assert isinstance(result, IngestResult)
assert result.fps == pytest.approx(30.0, abs=2.0)
assert len(result.frames) > 0
assert result.width == 640
assert result.height == 480
assert result.confidence == 1.0
def test_rejects_missing_file(self):
agent = IngestAgent()
result = agent.run("/nonexistent/path.mp4")
assert result.confidence == 0.0
assert "not found" in result.notes.lower()
def test_result_is_frozen(self, tmp_path):
p = tmp_path / "test.mp4"
_make_test_video(p, n_frames=10, w=64, h=64)
agent = IngestAgent()
result = agent.run(str(p))
with pytest.raises(Exception):
result.fps = 999.0
def test_caps_frames(self, tmp_path):
"""Verify frame cap works on long videos."""
p = tmp_path / "long.mp4"
_make_test_video(p, n_frames=600)
agent = IngestAgent()
result = agent.run(str(p))
assert len(result.frames) <= 300