ytdl-sub/tests/integration/prebuilt_presets/test_url.py
Jesse Bannon 57fd6901e4
[DEV] Linter: Use ruff over black and isort (#1445)
Will eventually replace pylint with ruff
2026-03-09 11:39:01 -07:00

75 lines
2.4 KiB
Python

import pytest
from ytdl_sub.downloaders.url.downloader import MultiUrlDownloader
from ytdl_sub.downloaders.ytdl_options_builder import YTDLOptionsBuilder
from ytdl_sub.entries.entry import Entry
from ytdl_sub.entries.script.variable_definitions import VARIABLES, VariableDefinitions
from ytdl_sub.subscriptions.subscription import Subscription
v: VariableDefinitions = VARIABLES
@pytest.fixture
def subscription_dict(output_directory):
return {
"preset": [
"Plex TV Show by Date",
"Filter Keywords",
],
"overrides": {
"url": "https://your.name.here",
"tv_show_directory": output_directory,
"title_include_keywords": ["MOCK ENTRY 20-3"],
"modified_webpage_url": "{webpage_url}_append_test",
},
}
class TestUrl:
def test_modified_url_when_downloading(
self,
config,
subscription_dict,
subscription_name,
working_directory,
):
subscription = Subscription.from_dict(
config=config,
preset_name=subscription_name,
preset_dict=subscription_dict,
)
assert set(
url.webpage_url.format_string for url in subscription.downloader_options.urls.list
) == {"{modified_webpage_url}"}
downloader = MultiUrlDownloader(
options=subscription.downloader_options,
enhanced_download_archive=subscription.download_archive,
download_ytdl_options=YTDLOptionsBuilder(),
metadata_ytdl_options=YTDLOptionsBuilder(),
overrides=subscription.overrides,
)
entry = Entry(
entry_dict={
v.uid.metadata_key: "0",
v.extractor.metadata_key: "test",
v.extractor_key.metadata_key: "test",
v.epoch.metadata_key: 123,
v.webpage_url.metadata_key: "youtube.com/test_url",
v.ext.metadata_key: "mp4",
},
working_directory=working_directory,
)
entry.initialize_base_script()
entry.add_injected_variables(
download_entry=entry,
download_idx=0,
upload_date_idx=0,
).initialize_script(subscription.overrides)
entry.add({v.ytdl_sub_input_url_index.variable_name: 0})
assert downloader.webpage_url(entry) == "youtube.com/test_url_append_test"