diff --git a/src/NzbDrone.Core.Test/Download/DownloadServiceFixture.cs b/src/NzbDrone.Core.Test/Download/DownloadServiceFixture.cs index 6d6f681c6..1b49ef811 100644 --- a/src/NzbDrone.Core.Test/Download/DownloadServiceFixture.cs +++ b/src/NzbDrone.Core.Test/Download/DownloadServiceFixture.cs @@ -205,18 +205,26 @@ namespace NzbDrone.Core.Test.Download } [Test] - public void should_not_attempt_download_if_client_is_disabled() + public void should_attempt_download_even_if_client_is_disabled() { - WithUsenetClient(); + var mockUsenet = WithUsenetClient(); Mocker.GetMock() - .Setup(v => v.IsDisabled(It.IsAny())) - .Returns(true); + .Setup(v => v.GetBlockedProviders()) + .Returns(new List + { + new DownloadClientStatus + { + ProviderId = _downloadClients.First().Definition.Id, + DisabledTill = DateTime.UtcNow.AddHours(3) + } + }); - Assert.Throws(() => Subject.DownloadReport(_parseResult)); + Subject.DownloadReport(_parseResult); - Mocker.GetMock().Verify(c => c.Download(It.IsAny()), Times.Never()); - VerifyEventNotPublished(); + Mocker.GetMock().Verify(c => c.GetBlockedProviders(), Times.Never()); + mockUsenet.Verify(c => c.Download(It.IsAny()), Times.Once()); + VerifyEventPublished(); } [Test] diff --git a/src/NzbDrone.Core/Download/DownloadService.cs b/src/NzbDrone.Core/Download/DownloadService.cs index db90dce16..02f0a8d4e 100644 --- a/src/NzbDrone.Core/Download/DownloadService.cs +++ b/src/NzbDrone.Core/Download/DownloadService.cs @@ -56,11 +56,6 @@ namespace NzbDrone.Core.Download throw new DownloadClientUnavailableException($"{remoteEpisode.Release.DownloadProtocol} Download client isn't configured yet"); } - if (_downloadClientStatusService.IsDisabled(downloadClient.Definition.Id)) - { - throw new DownloadClientUnavailableException($"{downloadClient.Name} is disabled due to recent failues"); - } - // Limit grabs to 2 per second. if (remoteEpisode.Release.DownloadUrl.IsNotNullOrWhiteSpace() && !remoteEpisode.Release.DownloadUrl.StartsWith("magnet:")) { diff --git a/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs b/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs index 4de86a56a..500559072 100644 --- a/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs +++ b/src/NzbDrone.Core/ThingiProvider/Status/ProviderStatusServiceBase.cs @@ -10,7 +10,6 @@ namespace NzbDrone.Core.ThingiProvider.Status public interface IProviderStatusServiceBase where TModel : ProviderStatusBase, new() { - bool IsDisabled(int providerId); List GetBlockedProviders(); void RecordSuccess(int providerId); void RecordFailure(int providerId, TimeSpan minimumBackOff = default(TimeSpan)); @@ -37,11 +36,6 @@ namespace NzbDrone.Core.ThingiProvider.Status _logger = logger; } - public bool IsDisabled(int providerId) - { - return GetProviderStatus(providerId).IsDisabled(); - } - public virtual List GetBlockedProviders() { return _providerStatusRepository.All().Where(v => v.IsDisabled()).ToList();