[REFACTOR] Purge download_strategy from configs + tests (#670)

This commit is contained in:
Jesse Bannon 2023-07-25 20:26:04 -07:00 committed by GitHub
parent d24048bb01
commit 598b1da8a4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
13 changed files with 11 additions and 111 deletions

View file

@ -17,9 +17,6 @@ configuration:
presets: presets:
video: video:
download:
download_strategy: "url"
output_options: output_options:
output_directory: "/tmp/ytdl-sub-output" output_directory: "/tmp/ytdl-sub-output"
file_name: "{uid}.{ext}" file_name: "{uid}.{ext}"

View file

@ -110,7 +110,6 @@ presets:
preset: "base" preset: "base"
download: download:
download_strategy: "url"
url: "{url}" url: "{url}"
#################################################################################################### ####################################################################################################
@ -166,7 +165,6 @@ presets:
# Download using the multi_url strategy # Download using the multi_url strategy
download: download:
download_strategy: "multi_url"
urls: urls:
# The first URL will be all the artist's tracks. # The first URL will be all the artist's tracks.
# Treat these as singles - an album with a single track # Treat these as singles - an album with a single track

View file

@ -22,7 +22,6 @@ presets:
download: download:
# We will only use a single URL to download music video(s). # We will only use a single URL to download music video(s).
# Make {url} an override variable to set later. # Make {url} an override variable to set later.
download_strategy: "url"
url: "{url}" url: "{url}"
# For advanced YTDL users only; any YTDL parameter can be set here. # For advanced YTDL users only; any YTDL parameter can be set here.

View file

@ -15,7 +15,6 @@ class MultiUrlDownloadOptions(MultiUrlValidator):
my_example_preset: my_example_preset:
download: download:
# required # required
download_strategy: "multi_url"
urls: urls:
- url: "youtube.com/channel/UCsvn_Po0SmunchJYtttWpOxMg" - url: "youtube.com/channel/UCsvn_Po0SmunchJYtttWpOxMg"
variables: variables:

View file

@ -14,7 +14,6 @@ class UrlDownloadOptions(UrlValidator):
my_example_preset: my_example_preset:
download: download:
# required # required
download_strategy: "url"
url: "youtube.com/channel/UCsvn_Po0SmunchJYtttWpOxMg" url: "youtube.com/channel/UCsvn_Po0SmunchJYtttWpOxMg"
# optional # optional
playlist_thumbnails: playlist_thumbnails:

View file

@ -2,7 +2,6 @@ presets:
_view: _view:
download: download:
download_strategy: "url"
url: "{url}" url: "{url}"
output_options: output_options:
output_directory: "/tmp/ytdl-sub-view" output_directory: "/tmp/ytdl-sub-view"

View file

@ -2,7 +2,6 @@ presets:
# TODO: Update this # TODO: Update this
kodi_music_video: kodi_music_video:
download: download:
download_strategy: "url"
url: "{music_video_url}" url: "{music_video_url}"
output_options: output_options:

View file

@ -34,7 +34,6 @@ presets:
# TV show from one or more sources. Uses {url}'s avatar and banner as poster and fanart # TV show from one or more sources. Uses {url}'s avatar and banner as poster and fanart
_tv_show_by_date: _tv_show_by_date:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{url}" - url: "{url}"
playlist_thumbnails: playlist_thumbnails:
@ -87,9 +86,6 @@ presets:
# TV show from a collection. Must specify additional `tv_show_collection_season` presets in # TV show from a collection. Must specify additional `tv_show_collection_season` presets in
# addition. Each season sets its own `collection_season_number/_padded` # addition. Each season sets its own `collection_season_number/_padded`
_tv_show_collection: _tv_show_collection:
download:
download_strategy: "multi_url"
overrides: overrides:
season_number: "{collection_season_number}" season_number: "{collection_season_number}"
season_number_padded: "{collection_season_number_padded}" season_number_padded: "{collection_season_number_padded}"

View file

@ -21,7 +21,6 @@ presets:
collection_season_1: collection_season_1:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_1_url}" - url: "{collection_season_1_url}"
variables: variables:
@ -46,7 +45,6 @@ presets:
collection_season_2: collection_season_2:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_2_url}" - url: "{collection_season_2_url}"
variables: variables:
@ -65,7 +63,6 @@ presets:
collection_season_3: collection_season_3:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_3_url}" - url: "{collection_season_3_url}"
variables: variables:
@ -84,7 +81,6 @@ presets:
collection_season_4: collection_season_4:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_4_url}" - url: "{collection_season_4_url}"
variables: variables:
@ -103,7 +99,6 @@ presets:
collection_season_5: collection_season_5:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_5_url}" - url: "{collection_season_5_url}"
variables: variables:
@ -122,7 +117,6 @@ presets:
collection_season_6: collection_season_6:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_6_url}" - url: "{collection_season_6_url}"
variables: variables:
@ -141,7 +135,6 @@ presets:
collection_season_7: collection_season_7:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_7_url}" - url: "{collection_season_7_url}"
variables: variables:
@ -160,7 +153,6 @@ presets:
collection_season_8: collection_season_8:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_8_url}" - url: "{collection_season_8_url}"
variables: variables:
@ -179,7 +171,6 @@ presets:
collection_season_9: collection_season_9:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_9_url}" - url: "{collection_season_9_url}"
variables: variables:
@ -198,7 +189,6 @@ presets:
collection_season_10: collection_season_10:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_10_url}" - url: "{collection_season_10_url}"
variables: variables:
@ -217,7 +207,6 @@ presets:
collection_season_11: collection_season_11:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_11_url}" - url: "{collection_season_11_url}"
variables: variables:
@ -236,7 +225,6 @@ presets:
collection_season_12: collection_season_12:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_12_url}" - url: "{collection_season_12_url}"
variables: variables:
@ -255,7 +243,6 @@ presets:
collection_season_13: collection_season_13:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_13_url}" - url: "{collection_season_13_url}"
variables: variables:
@ -274,7 +261,6 @@ presets:
collection_season_14: collection_season_14:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_14_url}" - url: "{collection_season_14_url}"
variables: variables:
@ -293,7 +279,6 @@ presets:
collection_season_15: collection_season_15:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_15_url}" - url: "{collection_season_15_url}"
variables: variables:
@ -312,7 +297,6 @@ presets:
collection_season_16: collection_season_16:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_16_url}" - url: "{collection_season_16_url}"
variables: variables:
@ -331,7 +315,6 @@ presets:
collection_season_17: collection_season_17:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_17_url}" - url: "{collection_season_17_url}"
variables: variables:
@ -350,7 +333,6 @@ presets:
collection_season_18: collection_season_18:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_18_url}" - url: "{collection_season_18_url}"
variables: variables:
@ -369,7 +351,6 @@ presets:
collection_season_19: collection_season_19:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_19_url}" - url: "{collection_season_19_url}"
variables: variables:
@ -388,7 +369,6 @@ presets:
collection_season_20: collection_season_20:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_20_url}" - url: "{collection_season_20_url}"
variables: variables:
@ -407,7 +387,6 @@ presets:
collection_season_21: collection_season_21:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_21_url}" - url: "{collection_season_21_url}"
variables: variables:
@ -426,7 +405,6 @@ presets:
collection_season_22: collection_season_22:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_22_url}" - url: "{collection_season_22_url}"
variables: variables:
@ -445,7 +423,6 @@ presets:
collection_season_23: collection_season_23:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_23_url}" - url: "{collection_season_23_url}"
variables: variables:
@ -464,7 +441,6 @@ presets:
collection_season_24: collection_season_24:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_24_url}" - url: "{collection_season_24_url}"
variables: variables:
@ -483,7 +459,6 @@ presets:
collection_season_25: collection_season_25:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_25_url}" - url: "{collection_season_25_url}"
variables: variables:
@ -502,7 +477,6 @@ presets:
collection_season_26: collection_season_26:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_26_url}" - url: "{collection_season_26_url}"
variables: variables:
@ -521,7 +495,6 @@ presets:
collection_season_27: collection_season_27:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_27_url}" - url: "{collection_season_27_url}"
variables: variables:
@ -540,7 +513,6 @@ presets:
collection_season_28: collection_season_28:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_28_url}" - url: "{collection_season_28_url}"
variables: variables:
@ -559,7 +531,6 @@ presets:
collection_season_29: collection_season_29:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_29_url}" - url: "{collection_season_29_url}"
variables: variables:
@ -578,7 +549,6 @@ presets:
collection_season_30: collection_season_30:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_30_url}" - url: "{collection_season_30_url}"
variables: variables:
@ -597,7 +567,6 @@ presets:
collection_season_31: collection_season_31:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_31_url}" - url: "{collection_season_31_url}"
variables: variables:
@ -616,7 +585,6 @@ presets:
collection_season_32: collection_season_32:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_32_url}" - url: "{collection_season_32_url}"
variables: variables:
@ -635,7 +603,6 @@ presets:
collection_season_33: collection_season_33:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_33_url}" - url: "{collection_season_33_url}"
variables: variables:
@ -654,7 +621,6 @@ presets:
collection_season_34: collection_season_34:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_34_url}" - url: "{collection_season_34_url}"
variables: variables:
@ -673,7 +639,6 @@ presets:
collection_season_35: collection_season_35:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_35_url}" - url: "{collection_season_35_url}"
variables: variables:
@ -692,7 +657,6 @@ presets:
collection_season_36: collection_season_36:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_36_url}" - url: "{collection_season_36_url}"
variables: variables:
@ -711,7 +675,6 @@ presets:
collection_season_37: collection_season_37:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_37_url}" - url: "{collection_season_37_url}"
variables: variables:
@ -730,7 +693,6 @@ presets:
collection_season_38: collection_season_38:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_38_url}" - url: "{collection_season_38_url}"
variables: variables:
@ -749,7 +711,6 @@ presets:
collection_season_39: collection_season_39:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_39_url}" - url: "{collection_season_39_url}"
variables: variables:
@ -768,7 +729,6 @@ presets:
collection_season_40: collection_season_40:
download: download:
download_strategy: "multi_url"
urls: urls:
- url: "{collection_season_40_url}" - url: "{collection_season_40_url}"
variables: variables:

View file

@ -10,7 +10,6 @@ from ytdl_sub.utils.exceptions import ValidationException
def single_song_video_dict(output_directory): def single_song_video_dict(output_directory):
return { return {
"download": { "download": {
"download_strategy": "url",
"url": "https://www.youtube.com/watch?v=2lAe1cqCOXo", "url": "https://www.youtube.com/watch?v=2lAe1cqCOXo",
}, },
"output_options": {"output_directory": output_directory, "file_name": "will_error.mp4"}, "output_options": {"output_directory": output_directory, "file_name": "will_error.mp4"},

View file

@ -48,6 +48,5 @@ def output_options() -> Dict:
@pytest.fixture @pytest.fixture
def youtube_video() -> Dict: def youtube_video() -> Dict:
return { return {
"download_strategy": "url",
"url": "youtube.com/watch?v=123abc", "url": "youtube.com/watch?v=123abc",
} }

View file

@ -64,17 +64,9 @@ class TestConfigFilePartiallyValidatesPresets:
f"Allowed fields: {', '.join(sorted(PRESET_KEYS))}", f"Allowed fields: {', '.join(sorted(PRESET_KEYS))}",
) )
# TODO: Update with future source def test_error__download_args(self):
# def test_error__multiple_sources(self):
# self._partial_validate(
# preset_dict={"youtube": {}, "download": {}},
# expected_error_message="Validation error in partial_preset: "
# "Contains the sources download, youtube but can only have one",
# )
def test_error__bad_download_strategy_args(self):
self._partial_validate( self._partial_validate(
preset_dict={"download": {"download_strategy": "multi_url", "bad_key": "nope"}}, preset_dict={"download": {"bad_key": "nope"}},
expected_error_message="Validation error in partial_preset.download: " expected_error_message="Validation error in partial_preset.download: "
"'partial_preset.download' contains the field 'bad_key' which is not allowed. " "'partial_preset.download' contains the field 'bad_key' which is not allowed. "
"Allowed fields: download_reverse, playlist_thumbnails, source_thumbnails, url, " "Allowed fields: download_reverse, playlist_thumbnails, source_thumbnails, url, "
@ -138,30 +130,3 @@ class TestConfigFilePartiallyValidatesPresets:
expected_error_message="Validation error in partial_preset: " expected_error_message="Validation error in partial_preset: "
"preset 'DNE' does not exist in the provided config.", "preset 'DNE' does not exist in the provided config.",
) )
def test_partial_validate_partial_download_strategy(self):
_ = ConfigFile(
name="test_partial_validate",
value={
"configuration": {"working_directory": "."},
"presets": {
"parent": {"download": {"download_strategy": "url"}},
"child": {"preset": "parent", "download": {"url": "should work"}},
},
},
)
def test_partial_validate_partial_download_strategies(self):
_ = ConfigFile(
name="test_partial_validate",
value={
"configuration": {"working_directory": "."},
"presets": {
"parent": {"download": {"download_strategy": "url"}},
"child": {
"preset": "parent",
"download": {"download_strategy": "url", "url": "should work"},
},
},
},
)

View file

@ -10,28 +10,21 @@ from ytdl_sub.utils.exceptions import ValidationException
class TestPreset: class TestPreset:
@pytest.mark.parametrize( @pytest.mark.parametrize(
"source, download_strategy", "download_value",
[ [
("download", {"download_strategy": "url", "url": "youtube.com/watch?v=123abc"}), {"url": "youtube.com/watch?v=123abc"},
( {"urls": [{"url": "youtube.com/watch?v=123abc"}]},
"download", ###########################################################
{ ##### OLD download_strategy format
"download_strategy": "url", {"download_strategy": "url", "url": "youtube.com/watch?v=123abc"},
"url": "youtube.com/playlist?list=123abc", {"download_strategy": "multi-url", "urls": [{"url": "youtube.com/watch?v=123abc"}]},
},
),
("download", {"download_strategy": "url", "url": "youtube.com/c/123abc"}),
(
"download",
{"download_strategy": "url", "url": "soundcloud.com/123abc"},
),
], ],
) )
def test_bare_minimum_preset(self, config_file, output_options, source, download_strategy): def test_bare_minimum_preset(self, config_file, output_options, download_value):
_ = Preset( _ = Preset(
config=config_file, config=config_file,
name="test", name="test",
value={source: download_strategy, "output_options": output_options}, value={"download": download_value, "output_options": output_options},
) )
def test_preset_with_override_variable(self, config_file, output_options, youtube_video): def test_preset_with_override_variable(self, config_file, output_options, youtube_video):
@ -209,7 +202,6 @@ class TestPreset:
name="test", name="test",
value={ value={
"download": { "download": {
"download_strategy": "multi_url",
"urls": [{"url": "non-empty url"}, {"url": ""}], # empty url "urls": [{"url": "non-empty url"}, {"url": ""}], # empty url
}, },
"output_options": output_options, "output_options": output_options,
@ -231,7 +223,6 @@ class TestPreset:
name="test", name="test",
value={ value={
"download": { "download": {
"download_strategy": "multi_url",
"urls": [{"url": "{url}"}, {"url": "{url2}"}], "urls": [{"url": "{url}"}, {"url": "{url2}"}],
}, },
"output_options": output_options, "output_options": output_options,