ytdl-sub/tests/e2e/cli/test_view.py
2026-05-10 08:59:32 -07:00

40 lines
1.4 KiB
Python

from typing import Optional
import pytest
from conftest import mock_run_from_cli
from resources import DISABLE_E2E_TESTS
from ytdl_sub.utils.file_handler import FileMetadata
@pytest.mark.skipif(DISABLE_E2E_TESTS, reason="YouTube tests cannot run in GH")
class TestView:
@pytest.mark.parametrize("split_chapters", [True, False])
def test_view_from_cli(
self,
output_directory,
split_chapters,
):
args = "view "
args += "--split-chapters " if split_chapters else ""
args += "https://www.youtube.com/playlist?list=PLBsm_SagFMmdWnCnrNtLjA9kzfrRkto4i"
subscriptions = mock_run_from_cli(args=args)
assert len(subscriptions) == 1
transaction_log = subscriptions[0].transaction_log
# Ensure the video and thumbnail are recognized
assert len(transaction_log.files_created) == 2
video_metadata: Optional[FileMetadata] = None
for file_name, metadata in transaction_log.files_created.items():
if file_name.endswith("webm"):
video_metadata = metadata
break
assert video_metadata is not None
assert "Source Variables:" in video_metadata.metadata
if split_chapters:
assert " chapter_index: 1" in video_metadata.metadata
else:
assert " chapter_index: 1" not in video_metadata.metadata