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

pull/6/head
ta264 6 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 DownloadClientInfo clientStatus;
private DownloadClientItem downloadItem; private DownloadClientItem downloadItem;
private Mock<IDownloadClient> downloadClient; private Mock<IDownloadClient> downloadClient;
static Exception[] DownloadClientExceptions = {
new DownloadClientUnavailableException("error"),
new DownloadClientAuthenticationException("error"),
new DownloadClientException("error")
};
[SetUp] [SetUp]
public void Setup() public void Setup()
@ -132,13 +138,15 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
Subject.Check().ShouldBeError(wikiFragment: "bad-remote-path-mapping"); Subject.Check().ShouldBeError(wikiFragment: "bad-remote-path-mapping");
} }
[Test] [Test, TestCaseSource("DownloadClientExceptions")]
public void should_return_ok_if_client_unavailable() public void should_return_ok_if_client_throws_downloadclientexception(Exception ex)
{ {
downloadClient.Setup(s => s.GetStatus()) downloadClient.Setup(s => s.GetStatus())
.Throws(new DownloadClientUnavailableException("error")); .Throws(ex);
Subject.Check().ShouldBeOk(); Subject.Check().ShouldBeOk();
ExceptionVerification.ExpectedErrors(0);
} }
[Test] [Test]
@ -228,16 +236,18 @@ namespace NzbDrone.Core.Test.HealthCheck.Checks
Subject.Check(importEvent).ShouldBeError(wikiFragment: "docker-bad-remote-path-mapping"); Subject.Check(importEvent).ShouldBeError(wikiFragment: "docker-bad-remote-path-mapping");
} }
[Test] [Test, TestCaseSource("DownloadClientExceptions")]
public void should_return_ok_on_import_failed_event_if_client_unavailable() public void should_return_ok_on_import_failed_event_if_client_throws_downloadclientexception(Exception ex)
{ {
downloadClient.Setup(s => s.GetStatus()) downloadClient.Setup(s => s.GetStatus())
.Throws(new DownloadClientUnavailableException("error")); .Throws(ex);
var importEvent = new TrackImportFailedEvent(null, null, true, downloadItem); var importEvent = new TrackImportFailedEvent(null, null, true, downloadItem);
Subject.Check(importEvent).ShouldBeOk(); 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); _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"); 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); _logger.Debug(ex, "Unable to communicate with {0}", client.Definition.Name);
} }

Loading…
Cancel
Save