1
0
Fork 0
mirror of https://github.com/Radarr/Radarr synced 2024-12-21 23:42:23 +00:00

Fixed: Ignore free space check before grabbing if directory is missing

This commit is contained in:
Mark McDowall 2024-10-04 20:07:22 -07:00 committed by Bogdan
parent cfdb7a15de
commit 75c7a3cfc6
2 changed files with 25 additions and 2 deletions

View file

@ -1,3 +1,4 @@
using System.IO;
using FluentAssertions;
using Moq;
using NUnit.Framework;
@ -90,5 +91,16 @@ public void should_return_true_if_skip_free_space_check_is_true()
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
}
[Test]
public void should_return_true_if_root_folder_is_not_available()
{
WithMinimumFreeSpace(150);
WithSize(100);
Mocker.GetMock<IDiskProvider>().Setup(s => s.GetAvailableSpace(It.IsAny<string>())).Throws<DirectoryNotFoundException>();
Subject.IsSatisfiedBy(_remoteMovie, null).Accepted.Should().BeTrue();
}
}
}

View file

@ -1,3 +1,4 @@
using System.IO;
using NLog;
using NzbDrone.Common.Disk;
using NzbDrone.Common.Extensions;
@ -32,11 +33,21 @@ public Decision IsSatisfiedBy(RemoteMovie subject, SearchCriteriaBase searchCrit
}
var size = subject.Release.Size;
var freeSpace = _diskProvider.GetAvailableSpace(subject.Movie.Path);
var path = subject.Movie.Path;
long? freeSpace = null;
try
{
freeSpace = _diskProvider.GetAvailableSpace(path);
}
catch (DirectoryNotFoundException)
{
// Ignore so it'll be skipped in the following checks
}
if (!freeSpace.HasValue)
{
_logger.Debug("Unable to get available space for {0}. Skipping", subject.Movie.Path);
_logger.Debug("Unable to get available space for {0}. Skipping", path);
return Decision.Accept();
}