Fixed: RemotePathMappingCheck ignores all download client exceptions (#735)

pull/742/head
ta264 5 years ago committed by GitHub
parent 11eaa58c1c
commit b1aff8fe58
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -26,6 +26,12 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
private DownloadClientInfo clientStatus;
private DownloadClientItem downloadItem;
private Mock<IDownloadClient> downloadClient;
static Exception[] DownloadClientExceptions = {
new DownloadClientUnavailableException("error"),
new DownloadClientAuthenticationException("error"),
new DownloadClientException("error")
};
[SetUp]
public void Setup()
@ -132,13 +138,15 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
Subject.Check().ShouldBeError(wikiFragment: "bad-remote-path-mapping");
}
[Test]
public void should_return_ok_if_client_unavailable()
[Test, TestCaseSource("DownloadClientExceptions")]
public void should_return_ok_if_client_throws_downloadclientexception(Exception ex)
{
downloadClient.Setup(s => s.GetStatus())
.Throws(new DownloadClientUnavailableException("error"));
.Throws(ex);
Subject.Check().ShouldBeOk();
ExceptionVerification.ExpectedErrors(0);
}
[Test]
@ -228,16 +236,18 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
Subject.Check(importEvent).ShouldBeError(wikiFragment: "docker-bad-remote-path-mapping");
}
[Test]
public void should_return_ok_on_import_failed_event_if_client_unavailable()
[Test, TestCaseSource("DownloadClientExceptions")]
public void should_return_ok_on_import_failed_event_if_client_throws_downloadclientexception(Exception ex)
{
downloadClient.Setup(s => s.GetStatus())
.Throws(new DownloadClientUnavailableException("error"));
.Throws(ex);
var importEvent = new TrackImportFailedEvent(null, null, true, downloadItem);
Subject.Check(importEvent).ShouldBeOk();
ExceptionVerification.ExpectedErrors(0);
}
}
}

@ -86,7 +86,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
}
}
}
catch (DownloadClientUnavailableException ex)
catch (DownloadClientException ex)
{
_logger.Debug(ex, "Unable to communicate with {0}", client.Definition.Name);
}
@ -171,7 +171,7 @@ namespace NzbDrone.Core.HealthCheck.Checks
return new HealthCheck(GetType(), HealthCheckResult.Error, $"Download client {client.Definition.Name} reported files in {dlpath} but Lidarr cannot see this directory. You may need to adjust the folder's permissions.", "#permissions-error");
}
}
catch (DownloadClientUnavailableException ex)
catch (DownloadClientException ex)
{
_logger.Debug(ex, "Unable to communicate with {0}", client.Definition.Name);
}

Loading…
Cancel
Save