43 lines
1.3 KiB
Python
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"
|