embedchain
49 строк · 1.5 Кб
1import hashlib
2from unittest.mock import MagicMock, Mock, patch
3
4import pytest
5
6from embedchain.loaders.youtube_video import YoutubeVideoLoader
7
8
9@pytest.fixture
10def youtube_video_loader():
11return YoutubeVideoLoader()
12
13
14def test_load_data(youtube_video_loader):
15video_url = "https://www.youtube.com/watch?v=VIDEO_ID"
16mock_loader = Mock()
17mock_page_content = "This is a YouTube video content."
18mock_loader.load.return_value = [
19MagicMock(
20page_content=mock_page_content,
21metadata={"url": video_url, "title": "Test Video"},
22)
23]
24
25with patch("embedchain.loaders.youtube_video.YoutubeLoader.from_youtube_url", return_value=mock_loader):
26result = youtube_video_loader.load_data(video_url)
27
28expected_doc_id = hashlib.sha256((mock_page_content + video_url).encode()).hexdigest()
29
30assert result["doc_id"] == expected_doc_id
31
32expected_data = [
33{
34"content": "This is a YouTube video content.",
35"meta_data": {"url": video_url, "title": "Test Video"},
36}
37]
38
39assert result["data"] == expected_data
40
41
42def test_load_data_with_empty_doc(youtube_video_loader):
43video_url = "https://www.youtube.com/watch?v=VIDEO_ID"
44mock_loader = Mock()
45mock_loader.load.return_value = []
46
47with patch("embedchain.loaders.youtube_video.YoutubeLoader.from_youtube_url", return_value=mock_loader):
48with pytest.raises(ValueError):
49youtube_video_loader.load_data(video_url)
50