75 lines
2.4 KiB
Python
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"
|