[DEV] Unit test NFO tags (#1064)

This commit is contained in:
Jesse Bannon 2024-09-25 23:23:16 -07:00 committed by GitHub
parent 6c3150ac0c
commit f963125398
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 326 additions and 31 deletions

View file

@ -1,7 +1,7 @@
Files created:
----------------------------------------
{output_directory}
.ytdl-sub-kodi_safe_xml-download-archive.json
.ytdl-sub-subscription_test-download-archive.json
test.nfo
NFO tags:
kodi_safe_root 🎸:
@ -34,22 +34,22 @@ Files created:
tag:
the
tag 🎸🎸
{output_directory}/kodi_safe_xml
Can you hear the difference 🎸🔥 #shorts.info.json
Can you hear the difference 🎸🔥 #shorts.jpg
Can you hear the difference 🎸🔥 #shorts.mp4
{output_directory}/subscription_test
Mock Entry 20-1.info.json
Mock Entry 20-1.jpg
Mock Entry 20-1.mp4
Video Tags:
album: Music Videos
artist: kodi_safe_xml
artist: subscription_test
genre: ytdl-sub
premiered: 2022-06-30
title: Can you hear the difference? 🎸🔥 #shorts
year: 2022
Can you hear the difference 🎸🔥 #shorts.nfo
premiered: 2020-08-08
title: Mock Entry 20-1
year: 2020
Mock Entry 20-1.nfo
NFO tags:
musicvideo:
album: Music Videos
artist: kodi_safe_xml
artist: subscription_test
genre: ytdl-sub
kodi_safe_multi_title 🎸:
- value 1 🎸
@ -80,5 +80,146 @@ Files created:
tag:
the
tag 🎸🎸
premiered: 2022-06-30
title: Can you hear the difference? 🎸🔥 #shorts
premiered: 2020-08-08
title: Mock Entry 20-1
Mock Entry 20-2.info.json
Mock Entry 20-2.jpg
Mock Entry 20-2.mp4
Video Tags:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
premiered: 2020-08-08
title: Mock Entry 20-2
year: 2020
Mock Entry 20-2.nfo
NFO tags:
musicvideo:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
kodi_safe_multi_title 🎸:
- value 1 🎸
- value 2 🎸
kodi_safe_multi_title_with_attrs:
-
attributes:
🎸?:
value
newlines 🎸
tag:
the
tag 1 🎸🎸
-
attributes:
🎸?:
value
newlines 🎸
tag:
the
tag 2 🎸🎸
kodi_safe_title 🎸: kodi_safe_value 🎸
kodi_safe_title_with_attrs:
attributes:
🎸?:
value
newlines 🎸
tag:
the
tag 🎸🎸
premiered: 2020-08-08
title: Mock Entry 20-2
Mock Entry 20-3.info.json
Mock Entry 20-3.jpg
Mock Entry 20-3.mp4
Video Tags:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
premiered: 2020-08-07
title: Mock Entry 20-3
year: 2020
Mock Entry 20-3.nfo
NFO tags:
musicvideo:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
kodi_safe_multi_title 🎸:
- value 1 🎸
- value 2 🎸
kodi_safe_multi_title_with_attrs:
-
attributes:
🎸?:
value
newlines 🎸
tag:
the
tag 1 🎸🎸
-
attributes:
🎸?:
value
newlines 🎸
tag:
the
tag 2 🎸🎸
kodi_safe_title 🎸: kodi_safe_value 🎸
kodi_safe_title_with_attrs:
attributes:
🎸?:
value
newlines 🎸
tag:
the
tag 🎸🎸
premiered: 2020-08-07
title: Mock Entry 20-3
Mock Entry 21-1.info.json
Mock Entry 21-1.jpg
Mock Entry 21-1.mp4
Video Tags:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
premiered: 2021-08-08
title: Mock Entry 21-1
year: 2021
Mock Entry 21-1.nfo
NFO tags:
musicvideo:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
kodi_safe_multi_title 🎸:
- value 1 🎸
- value 2 🎸
kodi_safe_multi_title_with_attrs:
-
attributes:
🎸?:
value
newlines 🎸
tag:
the
tag 1 🎸🎸
-
attributes:
🎸?:
value
newlines 🎸
tag:
the
tag 2 🎸🎸
kodi_safe_title 🎸: kodi_safe_value 🎸
kodi_safe_title_with_attrs:
attributes:
🎸?:
value
newlines 🎸
tag:
the
tag 🎸🎸
premiered: 2021-08-08
title: Mock Entry 21-1

View file

@ -1,7 +1,7 @@
Files created:
----------------------------------------
{output_directory}
.ytdl-sub-kodi_safe_xml-download-archive.json
.ytdl-sub-subscription_test-download-archive.json
test.nfo
NFO tags:
kodi_safe_root □:
@ -34,22 +34,22 @@ Files created:
tag:
the
tag □□
{output_directory}/kodi_safe_xml
Can you hear the difference 🎸🔥 #shorts.info.json
Can you hear the difference 🎸🔥 #shorts.jpg
Can you hear the difference 🎸🔥 #shorts.mp4
{output_directory}/subscription_test
Mock Entry 20-1.info.json
Mock Entry 20-1.jpg
Mock Entry 20-1.mp4
Video Tags:
album: Music Videos
artist: kodi_safe_xml
artist: subscription_test
genre: ytdl-sub
premiered: 2022-06-30
title: Can you hear the difference? 🎸🔥 #shorts
year: 2022
Can you hear the difference 🎸🔥 #shorts.nfo
premiered: 2020-08-08
title: Mock Entry 20-1
year: 2020
Mock Entry 20-1.nfo
NFO tags:
musicvideo:
album: Music Videos
artist: kodi_safe_xml
artist: subscription_test
genre: ytdl-sub
kodi_safe_multi_title □:
- value 1 □
@ -80,5 +80,146 @@ Files created:
tag:
the
tag □□
premiered: 2022-06-30
title: Can you hear the difference? □□ #shorts
premiered: 2020-08-08
title: Mock Entry 20-1
Mock Entry 20-2.info.json
Mock Entry 20-2.jpg
Mock Entry 20-2.mp4
Video Tags:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
premiered: 2020-08-08
title: Mock Entry 20-2
year: 2020
Mock Entry 20-2.nfo
NFO tags:
musicvideo:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
kodi_safe_multi_title □:
- value 1 □
- value 2 □
kodi_safe_multi_title_with_attrs:
-
attributes:
□?:
value
newlines □
tag:
the
tag 1 □□
-
attributes:
□?:
value
newlines □
tag:
the
tag 2 □□
kodi_safe_title □: kodi_safe_value □
kodi_safe_title_with_attrs:
attributes:
□?:
value
newlines □
tag:
the
tag □□
premiered: 2020-08-08
title: Mock Entry 20-2
Mock Entry 20-3.info.json
Mock Entry 20-3.jpg
Mock Entry 20-3.mp4
Video Tags:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
premiered: 2020-08-07
title: Mock Entry 20-3
year: 2020
Mock Entry 20-3.nfo
NFO tags:
musicvideo:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
kodi_safe_multi_title □:
- value 1 □
- value 2 □
kodi_safe_multi_title_with_attrs:
-
attributes:
□?:
value
newlines □
tag:
the
tag 1 □□
-
attributes:
□?:
value
newlines □
tag:
the
tag 2 □□
kodi_safe_title □: kodi_safe_value □
kodi_safe_title_with_attrs:
attributes:
□?:
value
newlines □
tag:
the
tag □□
premiered: 2020-08-07
title: Mock Entry 20-3
Mock Entry 21-1.info.json
Mock Entry 21-1.jpg
Mock Entry 21-1.mp4
Video Tags:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
premiered: 2021-08-08
title: Mock Entry 21-1
year: 2021
Mock Entry 21-1.nfo
NFO tags:
musicvideo:
album: Music Videos
artist: subscription_test
genre: ytdl-sub
kodi_safe_multi_title □:
- value 1 □
- value 2 □
kodi_safe_multi_title_with_attrs:
-
attributes:
□?:
value
newlines □
tag:
the
tag 1 □□
-
attributes:
□?:
value
newlines □
tag:
the
tag 2 □□
kodi_safe_title □: kodi_safe_value □
kodi_safe_title_with_attrs:
attributes:
□?:
value
newlines □
tag:
the
tag □□
premiered: 2021-08-08
title: Mock Entry 21-1

View file

@ -1,5 +1,6 @@
import pytest
from expected_transaction_log import assert_transaction_log_matches
from unit.conftest import mock_download_collection_entries
from ytdl_sub.subscriptions.subscription import Subscription
@ -8,7 +9,7 @@ from ytdl_sub.subscriptions.subscription import Subscription
def subscription_dict(output_directory):
return {
"preset": "Jellyfin Music Videos",
"download": "https://www.youtube.com/shorts/ucYmEqmlhFw",
"download": "https://your.name.here",
# override the output directory with our fixture-generated dir
"output_options": {"output_directory": output_directory},
"format": "best[height<=480]", # download the worst format so it is fast
@ -79,7 +80,15 @@ def subscription_dict(output_directory):
class TestNfoTagsPlugins:
@pytest.mark.parametrize("kodi_safe", [True, False])
def test_nfo_tags(self, subscription_dict, default_config, output_directory, kodi_safe):
def test_nfo_tags(
self,
subscription_name,
subscription_dict,
config,
output_directory,
mock_download_collection_entries,
kodi_safe,
):
transaction_log_file_name = "test_nfo.txt"
if kodi_safe:
transaction_log_file_name = "test_nfo_kodi_safe.txt"
@ -87,13 +96,17 @@ class TestNfoTagsPlugins:
subscription_dict["output_directory_nfo_tags"]["kodi_safe"] = True
subscription = Subscription.from_dict(
config=default_config,
preset_name="kodi_safe_xml",
config=config,
preset_name=subscription_name,
preset_dict=subscription_dict,
)
# Only dry run is needed to see if NFO values are kodi safe
transaction_log = subscription.download(dry_run=True)
with mock_download_collection_entries(
is_youtube_channel=False, num_urls=1, is_extracted_audio=False
):
transaction_log = subscription.download(dry_run=False)
assert_transaction_log_matches(
output_directory=output_directory,
transaction_log=transaction_log,