Fixed: Failed download handling should now only report a download wasn't grabbed by sonarr if the download actually failed.

pull/3113/head
Taloth Saldono 10 years ago
parent 30849e6356
commit 6095855102

@ -68,6 +68,28 @@ namespace NzbDrone.Core.Test.Download
AssertDownloadNotFailed();
}
[Test]
public void should_warn_if_matching_history_is_not_found()
{
_trackedDownload.DownloadItem.Status = DownloadItemStatus.Failed;
GivenNoGrabbedHistory();
Subject.Process(_trackedDownload);
_trackedDownload.StatusMessages.Should().NotBeEmpty();
}
[Test]
public void should_not_warn_if_matching_history_is_not_found_and_not_failed()
{
_trackedDownload.DownloadItem.Status = DownloadItemStatus.Failed;
GivenNoGrabbedHistory();
Subject.Process(_trackedDownload);
_trackedDownload.StatusMessages.Should().NotBeEmpty();
}
[Test]
public void should_mark_failed_if_encrypted()
{

@ -54,24 +54,30 @@ namespace NzbDrone.Core.Download
public void Process(TrackedDownload trackedDownload)
{
var grabbedItems = _historyService.Find(trackedDownload.DownloadItem.DownloadId, HistoryEventType.Grabbed)
.ToList();
if (grabbedItems.Empty())
{
trackedDownload.Warn("Download wasn't grabbed by sonarr, skipping");
return;
}
string failure = null;
if (trackedDownload.DownloadItem.IsEncrypted)
{
trackedDownload.State = TrackedDownloadStage.DownloadFailed;
PublishDownloadFailedEvent(grabbedItems, "Encrypted download detected", trackedDownload);
failure = "Encrypted download detected";
}
else if (trackedDownload.DownloadItem.Status == DownloadItemStatus.Failed)
{
failure = trackedDownload.DownloadItem.Message ?? "Failed download detected";
}
if (failure != null)
{
var grabbedItems = _historyService.Find(trackedDownload.DownloadItem.DownloadId, HistoryEventType.Grabbed)
.ToList();
if (grabbedItems.Empty())
{
trackedDownload.Warn("Download wasn't grabbed by sonarr, skipping");
return;
}
trackedDownload.State = TrackedDownloadStage.DownloadFailed;
PublishDownloadFailedEvent(grabbedItems, trackedDownload.DownloadItem.Message, trackedDownload);
PublishDownloadFailedEvent(grabbedItems, failure, trackedDownload);
}
}

Loading…
Cancel
Save