40 lines
1.4 KiB
Python
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
|