Fix error where download archive does not exist from no downloads (#83)
This commit is contained in:
parent
4447f456d5
commit
e5b925fb57
2 changed files with 70 additions and 0 deletions
|
|
@ -97,6 +97,10 @@ class DownloadArchive:
|
||||||
-------
|
-------
|
||||||
Instantiated DownloadArchive class
|
Instantiated DownloadArchive class
|
||||||
"""
|
"""
|
||||||
|
# If no download archive file exists, instantiate an empty one
|
||||||
|
if not os.path.isfile(file_path):
|
||||||
|
return cls(download_archive_lines=[])
|
||||||
|
|
||||||
with open(file_path, "r", encoding="utf8") as file:
|
with open(file_path, "r", encoding="utf8") as file:
|
||||||
return cls(download_archive_lines=file.readlines())
|
return cls(download_archive_lines=file.readlines())
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -184,6 +184,55 @@ def expected_recent_channel_download():
|
||||||
# fmt: on
|
# fmt: on
|
||||||
|
|
||||||
|
|
||||||
|
####################################################################################################
|
||||||
|
# RECENT CHANNEL FIXTURES -- NO VIDS IN RANGE
|
||||||
|
@pytest.fixture
|
||||||
|
def recent_channel_no_vids_in_range_subscription_dict(subscription_dict):
|
||||||
|
# TODO: remove this hack by using a different channel
|
||||||
|
del subscription_dict["ytdl_options"]["break_on_reject"]
|
||||||
|
return mergedeep.merge(
|
||||||
|
subscription_dict,
|
||||||
|
{
|
||||||
|
"preset": "yt_channel_as_tv__recent",
|
||||||
|
"youtube": {"after": "20880101"},
|
||||||
|
},
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def recent_channel_no_vids_in_range_subscription(
|
||||||
|
config, subscription_name, recent_channel_no_vids_in_range_subscription_dict
|
||||||
|
):
|
||||||
|
recent_channel_preset = Preset.from_dict(
|
||||||
|
config=config,
|
||||||
|
preset_name=subscription_name,
|
||||||
|
preset_dict=recent_channel_no_vids_in_range_subscription_dict,
|
||||||
|
)
|
||||||
|
|
||||||
|
return Subscription.from_preset(
|
||||||
|
preset=recent_channel_preset,
|
||||||
|
config=config,
|
||||||
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@pytest.fixture
|
||||||
|
def expected_recent_channel_no_vids_in_range_download():
|
||||||
|
# turn off black formatter here for readability
|
||||||
|
# fmt: off
|
||||||
|
return ExpectedDownload(
|
||||||
|
expected_md5_file_hashes={
|
||||||
|
# Download mapping
|
||||||
|
Path("pz/.ytdl-sub-pz-download-archive.json"): "99914b932bd37a50b983c5e7c90ae93b",
|
||||||
|
|
||||||
|
# Output directory files
|
||||||
|
Path("pz/fanart.jpg"): "e6e323373c8902568e96e374817179cf",
|
||||||
|
Path("pz/poster.jpg"): "a14c593bcc75bb8d2c7145de4767ad01",
|
||||||
|
Path("pz/tvshow.nfo"): "83c7db96081ac5bdf289fcf396bec157",
|
||||||
|
}
|
||||||
|
)
|
||||||
|
# fmt: on
|
||||||
|
|
||||||
|
|
||||||
####################################################################################################
|
####################################################################################################
|
||||||
# ROLLING RECENT CHANNEL FIXTURES
|
# ROLLING RECENT CHANNEL FIXTURES
|
||||||
@pytest.fixture
|
@pytest.fixture
|
||||||
|
|
@ -262,6 +311,23 @@ class TestChannelAsKodiTvShow:
|
||||||
recent_channel_subscription.download()
|
recent_channel_subscription.download()
|
||||||
expected_recent_channel_download.assert_files_exist(relative_directory=output_directory)
|
expected_recent_channel_download.assert_files_exist(relative_directory=output_directory)
|
||||||
|
|
||||||
|
def test_recent_channel_download__no_vids_in_range(
|
||||||
|
self,
|
||||||
|
recent_channel_no_vids_in_range_subscription,
|
||||||
|
expected_recent_channel_no_vids_in_range_download,
|
||||||
|
output_directory,
|
||||||
|
):
|
||||||
|
recent_channel_no_vids_in_range_subscription.download()
|
||||||
|
expected_recent_channel_no_vids_in_range_download.assert_files_exist(
|
||||||
|
relative_directory=output_directory
|
||||||
|
)
|
||||||
|
|
||||||
|
# Try again, make sure its the same
|
||||||
|
recent_channel_no_vids_in_range_subscription.download()
|
||||||
|
expected_recent_channel_no_vids_in_range_download.assert_files_exist(
|
||||||
|
relative_directory=output_directory
|
||||||
|
)
|
||||||
|
|
||||||
def test_rolling_recent_channel_download(
|
def test_rolling_recent_channel_download(
|
||||||
self,
|
self,
|
||||||
recent_channel_subscription,
|
recent_channel_subscription,
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue