[DEV] Unit test music tags (#1074)
This commit is contained in:
parent
f2ec26d77e
commit
1caade46bd
2 changed files with 48 additions and 45 deletions
|
|
@ -1,45 +0,0 @@
|
||||||
import re
|
|
||||||
|
|
||||||
import pytest
|
|
||||||
|
|
||||||
from ytdl_sub.subscriptions.subscription import Subscription
|
|
||||||
from ytdl_sub.utils.exceptions import ValidationException
|
|
||||||
|
|
||||||
|
|
||||||
@pytest.fixture
|
|
||||||
def single_song_video_dict(output_directory):
|
|
||||||
return {
|
|
||||||
"download": "https://www.youtube.com/watch?v=2lAe1cqCOXo",
|
|
||||||
"output_options": {"output_directory": output_directory, "file_name": "will_error.mp4"},
|
|
||||||
# test multi-tags
|
|
||||||
"music_tags": {"genres": ["multi_tag_1", "multi_tag_2"]},
|
|
||||||
"format": "worst[ext=mp4]", # download the worst format so it is fast
|
|
||||||
"ytdl_options": {
|
|
||||||
"postprocessor_args": {"ffmpeg": ["-bitexact"]}, # Must add this for reproducibility
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
class TestMusicTags:
|
|
||||||
def test_music_tags_errors_on_video(
|
|
||||||
self,
|
|
||||||
default_config,
|
|
||||||
single_song_video_dict,
|
|
||||||
output_directory,
|
|
||||||
):
|
|
||||||
subscription = Subscription.from_dict(
|
|
||||||
config=default_config,
|
|
||||||
preset_name="single_song_test",
|
|
||||||
preset_dict=single_song_video_dict,
|
|
||||||
)
|
|
||||||
|
|
||||||
with pytest.raises(
|
|
||||||
ValidationException,
|
|
||||||
match=re.escape(
|
|
||||||
"Validation error in single_song_test.music_tags: music_tags plugin received a "
|
|
||||||
"video with the extension 'mp4'. Only audio files are supported for setting music "
|
|
||||||
"tags. Ensure you are converting the video to audio using the audio_extract "
|
|
||||||
"plugin."
|
|
||||||
),
|
|
||||||
):
|
|
||||||
subscription.download(dry_run=True)
|
|
||||||
48
tests/unit/plugins/test_music_tags.py
Normal file
48
tests/unit/plugins/test_music_tags.py
Normal file
|
|
@ -0,0 +1,48 @@
|
||||||
|
import re
|
||||||
|
|
||||||
|
import pytest
|
||||||
|
|
||||||
|
from ytdl_sub.subscriptions.subscription import Subscription
|
||||||
|
from ytdl_sub.utils.exceptions import ValidationException
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def single_song_video_dict(output_directory):
|
||||||
|
return {
|
||||||
|
"download": "https://your.name.here",
|
||||||
|
"output_options": {"output_directory": output_directory, "file_name": "will_error.mp4"},
|
||||||
|
# test multi-tags compile
|
||||||
|
"music_tags": {"genres": ["multi_tag_1", "multi_tag_2"]},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
class TestMusicTags:
|
||||||
|
def test_music_tags_errors_on_video(
|
||||||
|
self,
|
||||||
|
config,
|
||||||
|
single_song_video_dict,
|
||||||
|
output_directory,
|
||||||
|
subscription_name,
|
||||||
|
mock_download_collection_entries,
|
||||||
|
):
|
||||||
|
subscription = Subscription.from_dict(
|
||||||
|
config=config,
|
||||||
|
preset_name=subscription_name,
|
||||||
|
preset_dict=single_song_video_dict,
|
||||||
|
)
|
||||||
|
|
||||||
|
with (
|
||||||
|
mock_download_collection_entries(
|
||||||
|
is_youtube_channel=False, num_urls=1, is_extracted_audio=False, is_dry_run=True
|
||||||
|
),
|
||||||
|
pytest.raises(
|
||||||
|
ValidationException,
|
||||||
|
match=re.escape(
|
||||||
|
f"Validation error in {subscription_name}.music_tags: music_tags plugin received a "
|
||||||
|
"video with the extension 'mp4'. Only audio files are supported for setting music "
|
||||||
|
"tags. Ensure you are converting the video to audio using the audio_extract "
|
||||||
|
"plugin."
|
||||||
|
),
|
||||||
|
),
|
||||||
|
):
|
||||||
|
subscription.download(dry_run=True)
|
||||||
Loading…
Reference in a new issue