Files

43 lines
1.3 KiB
Python

import pytest
from src.utils.youtube import extract_youtube_video_id, is_youtube_url, get_canonical_youtube_url
def test_extract_standard_watch_url():
url = "https://www.youtube.com/watch?v=dQw4w9WgXcQ"
assert extract_youtube_video_id(url) == "dQw4w9WgXcQ"
assert is_youtube_url(url) is True
def test_extract_short_url():
url = "https://youtu.be/dQw4w9WgXcQ?si=abcdef123456"
assert extract_youtube_video_id(url) == "dQw4w9WgXcQ"
assert is_youtube_url(url) is True
def test_extract_shorts_url():
url = "https://youtube.com/shorts/dQw4w9WgXcQ"
assert extract_youtube_video_id(url) == "dQw4w9WgXcQ"
assert is_youtube_url(url) is True
def test_extract_kodi_plugin_url():
url = "plugin://plugin.video.youtube/play/?video_id=dQw4w9WgXcQ"
assert extract_youtube_video_id(url) == "dQw4w9WgXcQ"
assert is_youtube_url(url) is True
def test_extract_embed_url():
url = "https://www.youtube.com/embed/dQw4w9WgXcQ"
assert extract_youtube_video_id(url) == "dQw4w9WgXcQ"
assert is_youtube_url(url) is True
def test_non_youtube_url():
url = "https://example.com/video.mp4"
assert extract_youtube_video_id(url) is None
assert is_youtube_url(url) is False
def test_canonical_url():
assert get_canonical_youtube_url("dQw4w9WgXcQ") == "https://www.youtube.com/watch?v=dQw4w9WgXcQ"