71 lines
2.4 KiB
Python
71 lines
2.4 KiB
Python
from pathlib import Path
|
|
|
|
from resources import assert_expected_json
|
|
|
|
from ytdl_sub.config.config_file import ConfigFile
|
|
from ytdl_sub.entries.script.variable_definitions import VARIABLES
|
|
from ytdl_sub.subscriptions.subscription import Subscription
|
|
from ytdl_sub.utils.script import ScriptUtils
|
|
|
|
|
|
def test_built_in_unresolvable(docker_default_subscription_path: Path, output_directory: str):
|
|
sub = Subscription.from_file_path(
|
|
config=ConfigFile.from_file_path("docker/root/defaults/config.yaml"),
|
|
subscription_path=docker_default_subscription_path,
|
|
)[0]
|
|
|
|
unresolvable = sub.plugins.get_all_variables(
|
|
additional_options=[sub.downloader_options, sub.output_options]
|
|
)
|
|
unresolvable.add("entry_metadata")
|
|
unresolvable.add("sibling_metadata")
|
|
unresolvable.update(VARIABLES.scripts().keys())
|
|
|
|
script = sub.overrides.script
|
|
partial_script = script.resolve_partial(unresolvable=unresolvable)
|
|
|
|
out = {
|
|
name: ScriptUtils.to_native_script(partial_script._variables[name])
|
|
for name in sub.overrides.keys
|
|
if not name.startswith("%")
|
|
}
|
|
|
|
assert_expected_json(out, "inspect_built_in_unresolvable_overrides.json")
|
|
|
|
out = {
|
|
name: ScriptUtils.to_native_script(partial_script._variables[name])
|
|
for name in script.variable_names
|
|
}
|
|
|
|
assert_expected_json(out, "inspect_built_in_unresolvable_all.json")
|
|
|
|
|
|
def test_bare_minimum_unresolvable(docker_default_subscription_path: Path, output_directory: str):
|
|
sub = Subscription.from_file_path(
|
|
config=ConfigFile.from_file_path("docker/root/defaults/config.yaml"),
|
|
subscription_path=docker_default_subscription_path,
|
|
)[0]
|
|
|
|
unresolvable = sub.plugins.get_all_variables(
|
|
additional_options=[sub.downloader_options, sub.output_options]
|
|
)
|
|
unresolvable.add("entry_metadata")
|
|
unresolvable.add("sibling_metadata")
|
|
|
|
script = sub.overrides.script
|
|
partial_script = script.resolve_partial(unresolvable=unresolvable)
|
|
|
|
out = {
|
|
name: ScriptUtils.to_native_script(partial_script._variables[name])
|
|
for name in sub.overrides.keys
|
|
if not name.startswith("%")
|
|
}
|
|
|
|
assert_expected_json(out, "inspect_unresolvable_all.json")
|
|
|
|
out = {
|
|
name: ScriptUtils.to_native_script(partial_script._variables[name])
|
|
for name in script.variable_names
|
|
}
|
|
|
|
assert_expected_json(out, "inspect_unresolvable_overrides.json")
|