Spaces:
Sleeping
Sleeping
File size: 1,783 Bytes
14184e3 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | """Tests for the YouTube Deep Dive agent (mocked youtube + Cerebras)."""
import asyncio
from unittest.mock import MagicMock
import app.agents.infinity_wiki_agent as iw
def _agent(client=None):
a = iw.InfinityWikiAgent.__new__(iw.InfinityWikiAgent)
a._yt_key = "key"
a._client = client
return a
def test_find_videos_maps_fields(monkeypatch):
async def fake_search(query, key, max_results=4):
return [{
"id": {"videoId": "abc123"},
"snippet": {"title": "Gradient Descent", "channelTitle": "3Blue1Brown",
"thumbnails": {"medium": {"url": "http://thumb"}}},
}]
monkeypatch.setattr(iw, "search_videos", fake_search)
vids = asyncio.run(_agent().find_videos("gradient descent", "high_school"))
assert vids[0]["video_id"] == "abc123"
assert vids[0]["title"] == "Gradient Descent"
assert vids[0]["channel"] == "3Blue1Brown"
assert vids[0]["thumbnail"] == "http://thumb"
assert vids[0]["url"].endswith("abc123")
def test_summarize_video_grounded(monkeypatch):
monkeypatch.setattr(iw, "fetch_transcript", lambda vid: "the loss decreases each step")
client = MagicMock()
client.structured_complete.return_value = iw._VideoSummary(summary="It explains GD", key_points=["step", "rate"])
res = _agent(client).summarize_video("abc123", "gradient descent", "high_school")
assert res.summary == "It explains GD"
assert res.key_points == ["step", "rate"]
def test_summarize_video_no_transcript(monkeypatch):
def _raise(vid):
raise Exception("transcripts disabled")
monkeypatch.setattr(iw, "fetch_transcript", _raise)
res = _agent(MagicMock()).summarize_video("abc123", "x", "high_school")
assert "unavailable" in res.summary.lower()
|